Java代码 复制代码
1. <web-app>
2. <!--servlet等其他配置-->
3. <security-constraint>
4. <web-resource-collection>
5. <web-resource-name>My Test</web-resource-name>
6. <url-pattern>/admin/*</url-pattern>
7. </web-resource-collection>
8. <auth-constraint>
9. <role-name>role1<迹嫌腊/role-name>
10. <role-name>tomcat</role-name>
11. </auth-constraint>
12. </security-constraint>
13. <login-config>
14. <auth-method>BASIC</auth-method>
15. <realm-name>My Test</realm-name>
16. </login-config>
<web-app>
<!--servlet等其他配置-->
<security-constraint>
<web-resource-collection>
<web-resource-name>My Test</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
<role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My Test</realm-name>
</login-config>
其中,<url-pattern>中指定受限的url,可以使用通配符*,通常对整个目录进行访问权限控制。
<auth-constraint>中指定哪些角色可以访问<url-pattern>指定的url,在<role-name>中可以设置一个或多个角色名。
使用的角色名来自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。
<login-config>中设置登录方式,<auth-method>的取值为BASIC或FORM。如果为BASIC,浏览器在需要登录时者带d出一个登录窗口。如果为FORM方式,需要指定登录页面和登录失败时的提示信息显示页面。
在web应用中 对页面的访问控制通常通过程序来控制 流程为 登录 >唤稿 设置session >访问受限页面时检查session是否存在 如果不存在 禁止访问
对于较小型的web应用 可以通过tomcat内置的访问控制机制来实现权限控制 采用这种机制的好处是 程序中无需进行权限控制 完全通过对tomcat的配置即可完成访问控制
为了在tomcat页面设置访问权限控制 在项目的WEB INFO/web xml文件中 进行如下设置
<web<fp class='fp-6xf8m'></fp>app><!<fp class='fp-o66t6'></fp><fp class='fp-o66t6'></fp>servlet等其他配置<fp class='fp-6xf8m'></fp><fp class='fp-528d3'></fp>><security<fp class='fp-6xf8m'></fp>constraint><web<fp class='fp-528d3'></fp>resource<fp class='fp-l6slo'></fp>collection><display<fp class='fp-6xf8m'></fp>name>Example Security Constraint</display<fp class='fp-o66t6'></fp>name><web<fp class='fp-6xf8m'></fp>resource<fp class='fp-528d3'></fp>name>My Test</web<fp class='fp-6xf8m'></fp>resource<fp class='fp-o66t6'></fp>name><url<fp class='fp-o66t6'></fp>pattern>/ddly/admin/*</url<fp class='fp-6xf8m'></fp>pattern></web<fp class='fp-528d3'></fp>resource<fp class='fp-l6slo'></fp>collection><auth<fp class='fp-6xf8m'></fp>constraint><role<fp class='fp-l6slo'></fp>name>role<fp class='fp-jn4nz'></fp></role<fp class='fp-6xf8m'></fp>name><role<fp class='fp-o66t6'></fp>name>tomcat</role<fp class='fp-528d3'></fp>name></auth<fp class='fp-o66t6'></fp>constraint></security<fp class='fp-6xf8m'></fp>constraint><login<fp class='fp-l6slo'><陪悔/fp>config><auth<fp class='fp-6xf8m'></fp>method>BASIC</auth<fp class='fp-528d3'></fp>method><realm<fp class='fp-6xf8m'></fp>name>My Test</realm<fp class='fp-528d3'></fp>name></login<fp class='fp-6xf8m'></fp>config></web<fp class='fp-528d3'></fp>app>
其中 <url pattern>中指定受限的url 可以使用通配符* 通常对整个目录进行访问权限控制
<auth constraint>中指定哪些角色可以访问<url pattern>指定的url 在<role name>中可以设置一个或多个角色名
使用的角色名来自tomcat的配置文件${CATALINA_HOME}/conf/tomcat users xml
<login config>中设置登录方式 <auth method>的取值为BASIC或FORM 如果为BASIC 浏览器在需要登录时d出一个登录窗口 如果为FORM方式 需要指定登录页面和登录失败时的提示信息显示页面
芦链正使用FORM方式的配置样例如下
<login<fp class='fp-o66t6'></fp>config><auth<fp class='fp-o66t6'></fp>method>FORM</auth<fp class='fp-l6slo'></fp>method><realm<fp class='fp-528d3'></fp>name>Example Form<fp class='fp-6xf8m'></fp>Based Authentication Area</realm<fp class='fp-528d3'></fp>name><form<fp class='fp-6xf8m'></fp>login<fp class='fp-528d3'></fp>config><form<fp class='fp-6xf8m'></fp>login<fp class='fp-528d3'></fp>page>/login<fp class='fp-izolt'></fp>jsp</form<fp class='fp-6xf8m'></fp>login<fp class='fp-528d3'></fp>page><form<fp class='fp-o66t6'></fp>error<fp class='fp-o66t6'></fp>page>/error<fp class='fp-bxyix'></fp>jsp</form<fp class='fp-6xf8m'></fp>error<fp class='fp-528d3'></fp>page></form<fp class='fp-528d3'></fp>login<fp class='fp-6xf8m'></fp>config></login<fp class='fp-l6slo'></fp>config>
其中的<form login page>指定登录页面url <form error page>指定登录失败时的提示页面url 登录页面中 form的action 以及其中的用户名和密码两个参数的名称 都应取固定的值 登录的后台处理程序为j_security_check 用户名和密码的参数名称分别为 j_username和j_password 如下是登录页面(如 login jsp)的一段示例代码
lishixinzhi/Article/program/Java/ky/201311/28097
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)