您的位置:首页 > 编程语言 > Java开发

spring-security学习笔记--配置文件

2013-01-06 14:05 459 查看
来源:http://blog.sina.com.cn/s/blog_7c3328d701013fct.html

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"
default-lazy-init="true">

<!--

auto-config = true 则使用from-login. 如果不使用该属性 则默认为http-basic(没有session).

lowercase-comparisons:表示URL比较前先转为小写。

path-type:表示使用Apache Ant的匹配模式。

access-denied-page:访问拒绝时转向的页面。

access-decision-manager-ref:指定了自定义的访问策略管理器。当系统角色名的前缀不是默认的ROLE_时,需要自定义访问策略管理器。

-->

<sec:http auto-config="true" servlet-api-provision="false" lowercase-comparisons="false"

access-denied-page="/html/error_page_access_denied.html" path-type="ant"

access-decision-manager-ref="accessDecisionManager">

<!--

login-page:指定登录页面。

login-processing-url:指定了客户在登录页面中按下 Sign In 按钮时要访问的 URL。与登录页面form的action一致。其默认值为:/j_spring_security_check。

authentication-failure-url:指定了身份验证失败时跳转到的页面。

default-target-url:指定了成功进行身份验证和授权后默认呈现给用户的页面。

always-use-default-target:指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。

-->

<sec:form-login login-page="/admin/page!login.action" login-processing-url="/admin/login"

default-target-url="/admin/page!main.action" authentication-failure-url="/admin/page!login.action"

always-use-default-target="true" />

<!-- "记住我"功能,采用持久化策略(将用户的登录信息存放在数据库表中) -->

<sec:remember-me key="e37f8888-0ooo-22dd-bd0b-9900211c9a66" />

<!--

logout-url:指定了用于响应退出系统请求的URL。其默认值为:/j_spring_security_logout。

logout-success-url:退出系统后转向的URL。

invalidate-session:指定在退出系统时是否要销毁Session。

-->

<sec:logout invalidate-session="true" logout-success-url="/admin/page!login.action"

logout-url="/admin/logout" />

<!--

max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。

exception-if-maximum-exceeded: 默认为false,此值表示:用户第二次登录时,前一次的登录信息都被清空。

当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。

-->

<sec:concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false" />

<!-- 后台登录 -->

<!-- intercept-url:拦截器,可以设定哪些路径需要哪些权限来访问. filters=none 不使用过滤,也可以理解为忽略 -->

<sec:intercept-url pattern="/admin/page!login.action" filters="none" />

<!-- 商品管理 -->

<sec:intercept-url pattern="/admin/goods!**" access="ROLE_GOODS" />

<!-- 基础管理权限 -->

<sec:intercept-url pattern="/admin/**" access="ROLE_BASE" />

<!--

下面是对Struts2的Action请求时的配置。注意在前面加/,否则不会被拦截验证。

表示具有访问/unitsManager资源的用户必须具有ROLE_PLATFORMADMIN的权限。

当用户登录时,将用户的所有权限从数据库中提取出来,形成列表。 当用户访问该资源时,

将登录用户的权限列表提出来跟下面配置的权限进行比对,若有,则允许访问,若没有,

则给出AccessDeniedException。

-->

<sec:intercept-url pattern="/unitsManager" access="ROLE_PLATFORMADMIN" />

<sec:intercept-url pattern="/usersManager" access="ROLE_PLATFORMADMIN" />

<sec:intercept-url pattern="/horizontalQuery" access="ROLE_PLATFORMADMIN" />

<sec:intercept-url pattern="/verticalQuery" access="ROLE_PLATFORMADMIN" />

</sec:http>

<sec:authentication-provider user-service-ref="adminDetailsServiceImpl">

<sec:password-encoder hash="md5" />

</sec:authentication-provider>

</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: