相對于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 .net.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"
aclearcase/" target="_blank" >cceptCount = "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應用了。
原文轉自:http://www.anti-gravitydesign.com