随笔-69  评论-0  文章-5  trackbacks-0
 
fisheye(1.4.3):
    cenqua_com_licensing.atlassian.license.DefaultLicense
       isExpired(),getExpiryDate()
    cenqua_com_licensing.atlassian.license.DefaultLicenseType(重点)
       isEvaluationLicenseType(),expires().....

posted @ 2008-05-28 11:13 liunix 阅读(507) | 评论 (0)编辑 收藏

一,将pem格式的key文件导入keystore

摘抄备用:http://www.agentbob.info/agentbob/79-AB.html

说明: 经试验证书的pem文件可能通过keytool直接导入keystore中的

Apache Tomcat and many other Java applications expect to retrieve SSL/TLS certificates from a Java Key Store (JKS). Jave Virtual Machines usually come with keytool  to help you create a new key store.

Keytool helps you to:

  • create a new JKS with a new private key
  • generate a Certificate Signung Request (CSR) for the private key in this JKS
  • import a certificate that you received for this CSR into your JKS

Keytool does not let you import an existing private key for which you already have a certificate. So you need to do this yourself, here's how:

Let's assume you have a private key (key.pem) and a certificate (cert.pem), both in PEM format as the file names suggest.

PEM format is 'kind-of-human-readable' and looks like e.g.

-----BEGIN CERTIFICATE-----
Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH+zxKUkKGX/eN
.
. (snip)
.
9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk=
----END CERTIFICATE-----

Convert both, the key and the certificate into DER format using openssl :

openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

Now comes the tricky bit, you need something to import these files into the JKS. ImportKey will do this for you, get the ImportKey.java (text/x-java-source, 6.6 kB, info) source or the compiled (Java 1.5 !) ImportKey.class (application/octet-stream, 3.3 kB, info) and run it like

user@host:~$ java ImportKey key.der cert.der
Using keystore-file : /home/user/keystore.ImportKey
One certificate, no chain.
Key and certificate stored.
Alias:importkey Password:importkey

Now we have a proper JKS containing our private key and certificate in a file called keystore.ImportKey, using 'importkey' as alias and also as password. For any further changes, like changing the password we can use keytool.



二、将私钥导出成pem文件(默认keytool是不能导出私钥的)
import sun.misc.BASE64Encoder;
import java.security.cert.Certificate;
import java.security.*;
import java.io.File;
import java.io.FileInputStream;
 
class ExportPriv {
    
public static void main(String args[]) throws Exception{
    ExportPriv myep 
= new ExportPriv();
    myep.doit();
    }
 
    
public void doit() throws Exception{
 
    KeyStore ks 
= KeyStore.getInstance("JKS");
    String fileName 
= "store.jks";
 
    
char[] passPhrase = "password".toCharArray();
    BASE64Encoder myB64 
= new BASE64Encoder();
    
 
    File certificateFile 
= new File(fileName);
    ks.load(
new FileInputStream(certificateFile), passPhrase);
 
    KeyPair kp 
= getPrivateKey(ks, "alias", passPhrase);
        
    PrivateKey privKey 
= kp.getPrivate();
    
 
    String b64 
= myB64.encode(privKey.getEncoded());
 
    System.out.println(
"-----BEGIN PRIVATE KEY-----");
    System.out.println(b64);
    System.out.println(
"-----END PRIVATE KEY-----");
 
    }
 
// From http://javaalmanac.com/egs/java.security/GetKeyFromKs.html
 
   
public KeyPair getPrivateKey(KeyStore keystore, String alias, char[] password) {
        
try {
            
// Get private key
            Key key = keystore.getKey(alias, password);
            
if (key instanceof PrivateKey) {
                
// Get certificate of public key
                Certificate cert = keystore.getCertificate(alias);
    
                
// Get public key
                PublicKey publicKey = cert.getPublicKey();
    
                
// Return a key pair
                return new KeyPair(publicKey, (PrivateKey)key);
            }
        } 
catch (UnrecoverableKeyException e) {
        } 
catch (NoSuchAlgorithmException e) {
        } 
catch (KeyStoreException e) {
        }
        
return null;
    }
 
}
 

posted @ 2008-04-17 16:27 liunix 阅读(7987) | 评论 (0)编辑 收藏
去年rails正火的时候,仿active record用hibernate实现了一个BasePo,当时用的是一个
静态sessionfactory注入的方式,感觉很不好,当明也没想到好的方案,后来发现有人通过
threadlocal实现了下面这个,可以看看:
 1 public class Persistent implements Lifecycle, Validatable, Serializable {
 2    
 3    protected Serializable _id;
 4    protected int _version;
 5 
 6    public Serializable getIdentifier() {
 7       return _id;
 8    }
 9    public void setIdentifier(Serializable id) {
10       _id = id;
11    }
12    public int getVersion() {
13       return _version;
14    }
15    public void setVersion(int version) {
16       _version = version;
17    }
18 
19    public Long persist() throws HibernateException, SQLException {
20       HibernateSession.currentSession().saveOrUpdate(this);
21       return _id;
22    }
23    public void delete() throws HibernateException, SQLException {
24       HibernateSession.currentSession().delete(this);
25    }
26    public void refresh() throws HibernateException, SQLException {
27       HibernateSession.currentSession().load(this, _id);
28    }
29    public void lock() throws HibernateException, SQLException {
30       HibernateSession.currentSession().lock(this, LockMode.UPGRADE);
31    }
32 
33    public boolean onSave(Session s) throws CallbackException {
34       return NO_VETO;
35    }
36    public boolean onDelete(Session s) throws CallbackException {
37       return NO_VETO;
38    }
39    public boolean onUpdate(Session s) throws CallbackException {
40       return NO_VETO;
41    }
42    public void onLoad(Session s, Serializable id) {
43       _id = id;
44    }
45 
46    public void validate() throws ValidationFailure {
47    }
48 }

原文:http://hibernate.bluemars.net/46.html?cmd=prntdoc

下面是hibernatesession的源码,应该考滤一下如何与spring事务结合的问题(还是加一个doInTransaction 的callback?)
 1 import java.util.Collection;
 2 
 3 import net.sf.hibernate.HibernateException;
 4 import net.sf.hibernate.Session;
 5 import net.sf.hibernate.Transaction;
 6 
 7 import org.apache.commons.logging.Log;
 8 import org.apache.commons.logging.LogFactory;
 9 
10 /**
11  * @author Ralph Schaer
12  * @version $Revision: 1.6 $ $Date: 2004/05/22 12:24:32 $
13  */
14 public class HibernateSession {
15 
16   private static final Log LOG = LogFactory.getLog(HibernateSession.class);
17   public static final ThreadLocal SESSION = new ThreadLocal();
18 
19   public static Session currentSession() throws HibernateException {
20 
21     Session s = (Session) SESSION.get();
22     if (s == null) {
23       s = HibernateFactoryManager.getSessionFactory().openSession();
24       SESSION.set(s);
25     }
26     return s;
27   }
28 
29   public static Session getSession() throws HibernateException {
30     return HibernateFactoryManager.getSessionFactory().openSession();
31   }
32 
33   public static void closeSession() {
34     try {
35       Session s = (Session) SESSION.get();
36       SESSION.set(null);
37       if (s != null) {
38         s.close();
39       }
40 
41     } catch (HibernateException e) {
42       LOG.error("HibernateSession:  closeSession", e);
43     }
44 
45   }
46 
47   public static void rollback(Transaction tx) {
48     if (tx != null) {
49       try {
50         tx.rollback();
51         closeSession();
52       } catch (HibernateException he) {
53         LOG.error("HibernateSession: rollback", he);
54       }
55     }
56   }
57 
58   //Utility methods
59   public static int collectionSize(Collection coll) throws HibernateException {
60     return ((Integer) currentSession().createFilter(coll, "select count(*)").iterate().next()).intValue();
61   }
62 
63 }


还有一种考虑泛型的方式可以参考:
http://privacyneed.info/index.php?hl=f5&q=uggc%3A%2F%2Fcrgreonpxyhaq.oybtfcbg.pbz%2F2007%2F07%2Fvzcyrzragvat-npgvirerpbeq-va-wnin.ugzy
posted @ 2008-03-28 11:30 liunix 阅读(466) | 评论 (0)编辑 收藏
从网上找了一段,写得挺麻烦,但可以借一下思路
cat watch.sh

#!/bin/sh
cd /root/bin

PID
=`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
PID
=`expr $PID + 1 - 1`

date
free
echo 
$PID
echo 
"------------------"

if [ $PID -eq 0 ]
then
sleep 10
/usr/java/tomcat/bin/startup.sh
sleep 160
fi

while [ 1 ]
do
date
free
echo 
"Tomcat process ID is $PID"
wget http
://192.168.1.101/jsp/w_blog/blog.jsp -O working.jpg 2>> /dev/null &
sleep 120
touch working
.jpg
SIZE
=`du working.jpg | gawk '{print $1}'`
if [ $SIZE -le 20 ]
then


WID
=`ps -aef | grep 192.168.1.101 | grep -grep | gawk '{print $2}'`
WID
=`expr $WID + 1 - 1`

if ! test -$WID
then
killall wget
fi


echo 
"Tomcat restart checking"
free
vmstat
FREEMEM
=`free | grep Mem | gawk '{print $4}'`

if [ $FREEMEM -le 15000 ]
then

if [ $PID -ne 0 ]
then
kill -9 $PID
ls 
-l
/usr/java/tomcat/bin/shutdown.sh
fi

/usr/java/tomcat/bin/shutdown.sh
sleep 10
/usr/java/tomcat/bin/startup.sh
sleep 30
fi

date
ps 
-aef | grep -v httpd
ls 
-l
PID
=`ps -aef | grep Xms500M | grep -grep | gawk '{print $2}'`
PID
=`expr $PID + 1 - 1`

fi

rm 
-f working.jpg

done


posted @ 2008-03-24 19:25 liunix 阅读(1295) | 评论 (0)编辑 收藏
1,设置好WEB-INF/classes/xplanner-customer.properties中的数据连接,建mysql库[xplanner]
2, 运行会自动创建数据库表和sysadmin/admin用户
3, 中文乱码,先导出数据库[主要保存用户维护数据]
    mysqldump --opt --database xplanner > xplanner.sql
4, 将sql中的create database语句改成default charset utf8;
5, souce xplanner.sql
6, 将server-config.wsdd[WEB-INF]下的附件上传位置改成合适目录
7, 重启xplanner即可

posted @ 2008-03-20 20:22 liunix 阅读(254) | 评论 (0)编辑 收藏
概念:
    唯一的就是一个候选键(数据库理论基础)
所以要增加唯一性就是增加一个Alternate key

操作:
    单击表模型,选中keys签,增加一个key,不选primary即可

信息来源sybooks online:
    http://infocenter.sybase.com/help/index.jsp
查找unique constraint找出和PDM相关的内容

posted @ 2008-03-19 15:36 liunix 阅读(171) | 评论 (0)编辑 收藏
网上说的比较多
不过一定要记住看服务进程的log:
view /var/log/mysql.log
在我这里问题是:


/usr/libexec/mysqld: Can't create/write to file '/tmp/'


说明mysql用户无权使用/tmp目录,改一下目录权限就好了
chmow -R 777 /tmp

posted @ 2008-03-18 14:29 liunix 阅读(171) | 评论 (0)编辑 收藏
一,JIRA安装
    1, 下载最新的JIRA(要注册才能得到测试liense)
    2,  创建数据库用户[注意:jira用的utf8],create database jira default charset utf8; (mysql)
    3,  按官网WIKI配置数据库,所有表会自动创建


二,SUBVERSION-PLUGIN
    1, 下载插件
    2,  拷完lib到指定位置即可(不要拷properties)   
    3, 在管理端增加仓库位置

三,svnwebclient
    1, enscript不是语法加亮,只是加彩而已(而且大部分linux版本自带)

posted @ 2008-03-18 14:04 liunix 阅读(217) | 评论 (0)编辑 收藏
1, 下载http://www.allwiki.com/wiki/Mediawiki
2,  解压放到/var/www/html下,将config目录权限改为777
3,  给apache增加一个配置文件mediawiki.conf,内容如下:
<Directory "/var/www/html/mediawiki">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
4,浏览器中输入:http://hostname/mediawiki/index.php
5,安装看是否缺php-mysql,如果缺到fc5的cd-rom中安装
6, 创建数据库
    mysql -u root
    create database mediawiki;
    grant all on mediawiki.* to mediawiki@'localhost' identified by 'mediawiki';
6, 输入各项配置
7, mysql5创建表有问题,尚未解决,实在不行只能换个wiki看看了

posted @ 2008-03-15 15:59 liunix 阅读(152) | 评论 (0)编辑 收藏
1, 下载bugzilla
    运行./checksetup.pl
2, 根据提示安装perl模块
    位置:http://search.cpan.org/search?query=IO%3A%3AScalarArray&mode=all
    下载后:
    perl Makefile.pl
    make
    make test
    make install
    (过程如果有依整性错误,请安装相应模块)
3,配置mysql
    mysql -u root
    create database bugs
    grant all on bugs.* to bugzilla@'localhost' identified by 'bugs'
4,配置vi ./localconfig设置数据库
5, 再次运行./checksetup.pl会创建数据库和设置bugzilla管理员(以mail作为登录名)
6, 将bugzilla目录拷到/www/html/下
7, 在/etc/httpd/conf.d/下增加bugzilla.conf内容如下:
AddHandler cgi-script .cgi .pl
<Directory "/var/www/html/bugzilla">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
8,运行apachectl restart
9,访问:http://hostname/bugzilla/index.cgi
   

posted @ 2008-03-15 14:41 liunix 阅读(161) | 评论 (0)编辑 收藏
仅列出标题
共7页: 上一页 1 2 3 4 5 6 7 下一页