1.在Tomcat下部署
A.首先需要在Web.xml中設(shè)置三個(gè)元素<security-constraint>,<login-config>,<security-role>
<security-constraint>中指明了受到限制的URL和可以訪問(wèn)的Role.
在<security-constraint>中設(shè)置的role需要在<security-role>中指定.
<login-config>設(shè)置以哪種方式來(lái)登陸,可選的有BASIC,FORM和Digest(MD5摘要認(rèn)證)三種認(rèn)證方式.如果是FORM方式的話,則需要兩個(gè)JSP文件,文件名可以隨意指定,但是自定義的驗(yàn)證網(wǎng)頁(yè)的表單名和字段名則需要按照如下定義:j_security_check (FORM名),j_username,j_password.
B.在Tomcat的Server.xml中打開(kāi)Realm元素,可以選擇的有三種:Memory Realm,JDBC Realm和DataSource Realm.
如果選擇了MemoryRelm,則需要在Tomcat目錄下的tomcat-users.xml中設(shè)置Role和user.
格式為
<tomcat-users>
<role rolename="role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
其他的認(rèn)證方式請(qǐng)參考<<Tomcat與WEB開(kāi)發(fā)>> Chapter 11
2.在JBoss下部署
A.同樣,對(duì)于一個(gè)應(yīng)用來(lái)說(shuō),也需要在Web.xml中設(shè)置三個(gè)元素.請(qǐng)參考上述的A
B.在JBOSS的server\default\conf目錄下有個(gè)login-config.xml,這里指定了當(dāng)需要驗(yàn)證時(shí)如何去讀取用戶名和密碼.這個(gè)文件的作用有點(diǎn)類(lèi)似上述Realm的作用,但是用戶的role和user不是在這個(gè)文件里指定,而是需要在配置文件中指明文件名.請(qǐng)參考這個(gè)文件中<jmx-console>的設(shè)置.
如果沒(méi)有明確的在login-server中指出應(yīng)用的驗(yàn)證方式,則會(huì)使用other方式.驗(yàn)證用戶名和密碼的時(shí)候,會(huì)去應(yīng)用的WEB-INF/classes/目錄下去讀取users.properties和roles.properties.這兩個(gè)文件.
C. roles.properties的格式是:
用戶名=角色名(注意不要寫(xiě)反了,在使用的時(shí)候,就是不小心把這兩個(gè)顛倒了,結(jié)果總是報(bào)錯(cuò))
Users.properties的格式是:
用戶名=密碼
實(shí)際上在JBOSS下部署更為方便,你不用像在Tomcat下那樣去改Server.xml,只需要采用
JBOSS的默認(rèn)配置就可以.你所要做的就是增加兩個(gè)文件,設(shè)置角色和用戶就可以了.