JEE安全机制

涉及到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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值