|
這有個(gè) jaas tomcat的實(shí)例, 先看下吧: http://zhidao.baidu.com/question/31047013.html 準(zhǔn)備文件和目錄 創(chuàng)建文件login.jsp和error.jsp login.jsp的內(nèi)容 <html> <head> <meta HTTP-EQUIV="Content-Type" Content="text-html; charset=gbk"> <title>login</title> </head> <body> <form method="POST" action="j_security_check"> 姓名:<input type="text" name="j_username"/> <br/> 密碼:<input type="password" name="j_password"/> <br/> <input type="submit" value="提交"/> </form> </body> </html> 在根目錄下創(chuàng)建目錄web,在新建的目錄下創(chuàng)建一個(gè)文件index.jsp,內(nèi)容如下 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>Apache-Axis</title> </head> <body bgcolor="#FFFFFF"> request.FORM_AUTH:<%=request.FORM_AUTH%><br/> request.getRemoteUser():<%=request.getRemoteUser()%><br/> </body> </html> 設(shè)置配置文件 在web.xml中添加以下內(nèi)容 <web-app> ... <security-constraint> <!-- Sample Security Constraint --> <web-resource-collection> <!-- We're going to protect this resource and make it available only to users in "role1". --> <web-resource-name>protected-resources</web-resource-name> <url-pattern>/web/*</url-pattern> <http-method>HEAD</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> <http-method>DELETE</http-method> </web-resource-collection> <!-- NOTE: This role names will be retrieved by Josso using the propper identity store. --> <auth-constraint> <role-name>role1</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config> <security-role > <description>Role 1</description> <role-name>role1</role-name> </security-role> </web-app> 測(cè)試 打開tomcat目錄下的conf/tomcat-users.xml文件,內(nèi)容如下 <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> </tomcat-users> 啟動(dòng)tomcat,在瀏覽器中輸入地址http://localhost:8080/hello/web/,顯示的內(nèi)容不是/web/index.html,而是login.jsp的內(nèi)容,輸入both或者role1的用戶名和密碼,將會(huì)看到web/index.html的內(nèi)容,當(dāng)然,如果輸入錯(cuò)誤,則會(huì)提示錯(cuò)誤信息。驗(yàn)證通過后,我們可以看到如下內(nèi)容: request.FORM_AUTH:FORM request.getRemoteUser():both? //用戶名 sun公司也有提供了一個(gè)關(guān)于JAAS的實(shí)例,可供實(shí)際分析JAAS使用原理,本人在網(wǎng)上找了許久這方面的文章,希望對(duì)你有幫助。 1、首先下載實(shí)例代碼 http://java./j2se/1.4.2/docs/guide/security/jaas/tutorials/sample_jaas.config http://java./j2se/1.4.2/docs/guide/security/jaas/tutorials/SampleAcn.java http://java./j2se/1.4.2/docs/guide/security/jaas/tutorials/SampleLoginModule.java http://java./j2se/1.4.2/docs/guide/security/jaas/tutorials/SamplePrincipal.java http://java./j2se/1.4.2/docs/guide/security/jaas/tutorials/sampleacn.policy 2、SampleAcn.java 放在 sample 目錄中, SampleLoginModule.java 放在 sample/module 之下, 而 SamplePricipal 放在 sample/principal 之下。 3、將 config 和 policy 配置文件放到項(xiàng)目的根目錄中,切記,否則無法找到此文件。 4、將所有文件編譯后執(zhí)行以下命令 java -Djava.security.auth.login.config==sample_jaas.config sample.SampleAcn 如果使用Eclipse則在Run... SampleAcn.java 類時(shí)把-Djava.security.auth.login.config==sample_jaas.config 參數(shù)填寫入Arguments標(biāo)簽頁面的VM arguments框中。 5、此時(shí)在控制臺(tái)顯示要求用戶輸入user name:和password:,分別輸入testUser和testPassword即可驗(yàn)證通過。 至于Jaas原理,有時(shí)間可以研究一下源代碼即可。 |
|
|