您现在的位置:软界网技术中心软件开发Java > 技术显示
JBoss-3.0.1RC1_Tomcat-4.0.4中的安全
2002-9-10 0:00:00   网友评论       阅读次数 点此评论
   相对于JBoss2.4.4而言,在用户安全认证方面,唯一的区别在于原在在auth.conf中配置的内容改在login-config.XML文件中,如DatabaseServerLoginModule的相应变动如下:

<application-policy name = 'testDB'>
<authentication>
<login-module code = 'org.jboss.security.auth.spi.DatabaseServerLoginModule'
flag = 'required'>
<module-option name='dsJndiName'>Java:/MySQLDS</module-option>
<module-option name='principalsQuery'>select passwd from Users username where username=?</module-option>
<module-option name='rolesQuery'>select userRoles, 'Roles' from UserRoles where username=?</module-option>
</login-module>
</authentication>
</application-policy>

具体方法可以参看本站另一篇文章:在JBOSS中实现用户安全认证。



第二部分:SSL

首先,要安装JSSE安全套接字扩展包,可以从SUN的站点下载,当前版本是v1.0.3。

解压缩后把lib目录下三个文件:jsse.jar jcert.jar jnet.jar 拷入%JAVA_HOME%jrelibext目录下,
并修改 %JAVA_HOME%jrelibsecurityjava.security文件,加上一句如下:

security.provider.3=com.sun.net.ssl.internal.ssl.Provider

然后我们创建一个用于服务器的密钥库,在命令行进入当前目录server/default/conf

keytool -genkey -keyalg RSA -keystore server.keystore


Enter keystore password: changeit
What is your first and last name? localhost

其它依提示操作即可。


下面修改JBoss相关配置文件:

第一步,修改server/default/conf/jboss-service.xml文件,在security一节中加入:

<!-- The SSL domain setup -->
<mbean code='org.jboss.security.plugins.JaasSecurityDomain'
name='Security:name=JaasSecurityDomain,domain=RMI+SSL'>
<constructor>
<arg type='java.lang.String' value='RMI+SSL'/>
</constructor>
<attribute name='KeyStoreURL'>server.keystore</attribute>
<attribute name='KeyStorePass'>changeit</attribute>
</mbean>

注意:这里的changeit是你在建立密钥库时输入的密码,server.keystore是你建立的密钥库文件。

第二步:修改server/default/deploy/tomcat4-service.xml文件,找到:

<Connector className = 'org.apache.catalina.connector.http.HttpConnector'
port = '8080' minProcessors = '3' maxProcessors = '10' enableLookups = 'true'
acceptCount = '10' debug = '0' connectionTimeout = '60000'/>

替换成:

<!-- HTTP Connector configuration -->
<Connector className = 'org.apache.catalina.connector.http.HttpConnector'
port = '8080' redirectPort = '8443'/>
<!-- SSL/TLS Connector configuration -->
<Connector className = 'org.apache.catalina.connector.http.HttpConnector'
port = '8443' scheme = 'https' secure = 'true'>
<Factory className = 'org.jboss.Web.catalina.security.SSLServerSocketFactory'
securityDomainName = 'java:/jaas/RMI+SSL' clientAuth = 'false'
protocol = 'TLS'/>
</Connector>

这样就完成了JBoss的配置。你可以通过https来访问你的web应用了。
 
      来源: 作者:
 
【评论查看】