JEE安全机制

xiaoxiao2024-05-09  51

涉及到JAAS(Java 鉴别与授权服务)。本文重点介绍相关配置。 WEB-INFO/web.xml <web-app> <!--servlet等其他配置--> <security-constraint> <web-resource-collection> <display-name>Example Security Constraint</display-name> <web-resource-name>Secure Area</web-resource-name> <url-pattern>/su/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>role1</role-name> <role-name>admin</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>ABC Administration Console</realm-name> </login-config> </web-app> 说明: <display-name>和<web-resource-name>可以是任意,但最好起一个有意义的名。 <auth-constraint>中<role-name>约束了只有哪些角色可以访问由<url-pattern>指定的资源。 <http-method>对指定方法的访问进行限定,未指出的不进行限定。 <login-config>:内说明的是以何种方式进行身份验证,有三种可选值: None,Digest,Client-Cert,Basic,Form。 <realm-name>:区域名,可以是你想给客户看的提示信息。 当<login-config>使用FORM时: <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/ua/login.jsp</form-login-page> <form-error-page>/ua/login.jsp?error=true</form-error-page> </form-login-config> </login-config> 页面login.jsp <FORM name="logonForm" method="post" action="j_security_check"> <input name="j_username" type="text" /> <input name="j_password" type="password" /> </FORM> [b]在TOMCAT环境下:[/b] 使用的角色名来自tomcat的配置文件 ${CATALINA_HOME}/conf/tomcat-users.xml。 [b]在JBOSS环境下:[/b] 需要在jboss-web.xml中配置JAAS的安全域: <jboss-web> <security-domain>java:/jaas/adc</security-domain> </jboss-web> abc是web工程名 还需要配置JBOSS/server/conf/login-config.xml: 例如:用户信息存放在数据库的方式。 <policy> <application-policy name = "abc"> <authentication> <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> <module-option name="dsJndiName">java:/abcDS</module-option> <module-option name="principalsQuery"> SELECT PASSWORD_ FROM abc_ID_USER WHERE NAME_=? </module-option> </login-module> </authentication> </application-policy> </policy> 例如:数据以.properties文件形式存在: <application-policy name = "abc"> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"> <module-option name="usersProperties">props/abc-user.properties</module-option> <module-option name="rolesProperties">props/abc-role.properties</module-option> <module-option name="unauthenticatedIdentity">anonymous</module-option> </login-module> </authentication> </application-policy> 参考:http://www.blogjava.net/asktalk/archive/2005/07/23/8221.html http://www.velocityreviews.com/forums/t142248-how-to-authenticate-under-jbossjaas-from-a-public-web-app-page.html http://blog.csdn.net/benjamin_liu/archive/2007/08/28/1761645.aspx
转载请注明原文地址: https://www.6miu.com/read-5015263.html

最新回复(0)