spring security3 xml配置详细说明注释

由于项目需要spring security架构,找了很多地方没有对该架构下xml文件的详细说明,最后找到了这一篇文章http://zhoualine.iteye.com/blog/1755233,这篇文章对各个标签的含义还比较详细,根据注释,可以理解一下xml配置的含义,供大家一起学习,共勉!

其中springsecurity.xml的详细注释如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans:beans xmlns="http://www.springframework.org/schema/security"  
  3.     xmlns:beans="http://www.springframework.org/schema/beans"   
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans   
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  7. http://www.springframework.org/schema/security   
  8. http://www.springframework.org/schema/security/spring-security-3.1.xsd">  
  9.     <global-method-security pre-post-annotations="enabled">  
  10.     </global-method-security>  
  11.     <!-- 该路径下的资源不用过滤 -->  
  12.     <http pattern="/include/js/**" security="none" />  
  13.     <http pattern="/include/css/**" security="none" />  
  14.     <http pattern="/include/scripts/**" security="none" />  
  15.     <http pattern="/include/jsp/**" security="none" />  
  16.     <http pattern="/images/**" security="none" />  
  17.     <http pattern="/login.jsp" security="none" />  
  18.     <!--auto-config = true 则使用from-login. 如果不使用该属性 则默认为http-basic(没有session).-->  
  19.     <!-- lowercase-comparisons:表示URL比较前先转为小写。-->  
  20.         <!-- path-type:表示使用Apache Ant的匹配模式。-->  
  21.     <!--access-denied-page:访问拒绝时转向的页面。-->  
  22.     <!-- access-decision-manager-ref:指定了自定义的访问策略管理器。-->  
  23.       
  24.     <http use-expressions="true" auto-config="true"  
  25.         access-denied-page="/include/jsp/timeout.jsp">  
  26. <!--login-page:指定登录页面。  -->  
  27. <!-- login-processing-url:指定了客户在登录页面中按下 Sign In 按钮时要访问的 URL。-->  
  28.         <!-- authentication-failure-url:指定了身份验证失败时跳转到的页面。-->  
  29.         <!-- default-target-url:指定了成功进行身份验证和授权后默认呈现给用户的页面。-->  
  30. <!-- always-use-default-target:指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。 
  31. -->  
  32.           
  33. <form-login login-page="/login.jsp" default-target-url='/system/default.jsp'  
  34.         always-use-default-target="true" authentication-failure-url="/login.jsp?login_error=1" />  
  35. <!--logout-url:指定了用于响应退出系统请求的URL。其默认值为:/j_spring_security_logout。-->  
  36.         <!-- logout-success-url:退出系统后转向的URL。-->  
  37.         <!-- invalidate-session:指定在退出系统时是否要销毁Session。-->  
  38.         <logout invalidate-session="true" logout-success-url="/login.jsp"  
  39.             logout-url="/j_spring_security_logout" />  
  40.         <!-- 实现免登陆验证 -->  
  41.         <remember-me />  
  42.   
  43.         <!-- max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。-->  
  44. <!-- 此值表示:用户第二次登录时,前一次的登录信息都被清空。-->  
  45.  <!--   exception-if-maximum-exceeded:默认为false,-->  
  46. <!-- 当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。-->  
  47.   
  48.         <session-management invalid-session-url="/login.jsp"  
  49.             session-fixation-protection="none">  
  50.             <concurrency-control max-sessions="1"  
  51.                 error-if-maximum-exceeded="false" />  
  52.         </session-management>  
  53.         <custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR" />  
  54.         <session-management  
  55.             session-authentication-strategy-ref="sas" />  
  56.   
  57.     </http>  
  58. <beans:bean id="sas"  
  59. class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">  
  60.         <beans:constructor-arg name="sessionRegistry"  
  61.             ref="sessionRegistry" />  
  62.         <beans:property name="maximumSessions" value="1" />  
  63.         <!-- 防止session攻击 -->  
  64.         <beans:property name="alwaysCreateSession" value="true" />  
  65.         <beans:property name="migrateSessionAttributes" value="false" />  
  66.         <!--  同一个帐号 同时只能一个人登录 -->  
  67.         <beans:property name="exceptionIfMaximumExceeded"  
  68.             value="false" />  
  69.     </beans:bean>  
  70.     <beans:bean id="sessionRegistry"  
  71.         class="org.springframework.security.core.session.SessionRegistryImpl" />  
  72.     <!-- 
  73. 事件监听:实现了ApplicationListener监听接口,包括AuthenticationCredentialsNotFoundEvent 事件,-->  
  74.     <!-- AuthorizationFailureEvent事件,AuthorizedEvent事件, PublicInvocationEvent事件-->  
  75.     <beans:bean  
  76.         class="org.springframework.security.authentication.event.LoggerListener" />  
  77.     <!-- 自定义资源文件   提示信息 -->  
  78.     <beans:bean id="messageSource"  
  79. class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
  80.         <beans:property name="basenames" value="classpath:message_zh_CN">  
  81. </beans:property>  
  82.     </beans:bean>  
  83.     <!-- 配置过滤器 -->  
  84.     <beans:bean id="myFilter"  
  85.         class="com.taskmanager.web.security.MySecurityFilter">  
  86.     <!-- 用户拥有的权限 -->  
  87.     <beans:property name="authenticationManager" ref="myAuthenticationManager" />  
  88.     <!-- 用户是否拥有所请求资源的权限 -->  
  89.     <beans:property name="accessDecisionManager" ref="myAccessDecisionManager" />  
  90.     <!-- 资源与权限对应关系 -->  
  91.     <beans:property name="securityMetadataSource" ref="mySecurityMetadataSource" />  
  92.     </beans:bean>  
  93.     <!-- 实现了UserDetailsService的Bean -->  
  94.     <authentication-manager alias="myAuthenticationManager">  
  95.         <authentication-provider user-service-ref="myUserDetailServiceImpl">  
  96.             <!-- 登入 密码  采用MD5加密 -->  
  97.             <password-encoder hash="md5" ref="passwordEncoder">  
  98.             </password-encoder>  
  99.         </authentication-provider>  
  100.     </authentication-manager>  
  101.     <!-- 验证用户请求资源  是否拥有权限 -->  
  102.     <beans:bean id="myAccessDecisionManager"  
  103.         class="com.taskmanager.web.security.MyAccessDecisionManager">  
  104.     </beans:bean>  
  105.     <!-- 系统运行时加载 系统要拦截的资源   与用户请求时要过滤的资源 -->  
  106.     <beans:bean id="mySecurityMetadataSource"  
  107.         class="com.taskmanager.web.security.MySecurityMetadataSource">  
  108.         <beans:constructor-arg name="powerService" ref="powerService">  
  109. </beans:constructor-arg>  
  110.     </beans:bean>  
  111.     <!-- 获取用户登入角色信息 -->  
  112.     <beans:bean id="myUserDetailServiceImpl"  
  113.         class="com.taskmanager.web.security.MyUserDetailServiceImpl">  
  114.         <beans:property name="userService" ref="userService"></beans:property>  
  115.     </beans:bean>  
  116.   
  117.     <!-- 用户的密码加密或解密 -->  
  118.     <beans:bean id="passwordEncoder"  
  119. class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />  
  120. </beans:beans>    
再贴上一个web.xml的配置(红色标注部分是重点)

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <context-param>  
  7.         <description>Spring applicationContext</description>  
  8.         <param-name>contextConfigLocation</param-name>  
  9.         <param-value>  
  10.             /WEB-INF/spring/application*.xml  
  11.         </param-value>  
  12.     </context-param>  
  13. <listener>  
  14.         <description>SpringContextLoaderListener</description>  
  15.         <display-name>SpringContextLoaderListener</display-name>  
  16. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  17.     </listener>  
  18. <!-- spring scurity 拦截器 -->  
  19.     <filter>  
  20.         <filter-name>springSecurityFilterChain</filter-name>  
  21.         <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
  22.     </filter>  
  23.     <filter-mapping>  
  24.         <filter-name>springSecurityFilterChain</filter-name>  
  25.         <url-pattern>*.jh</url-pattern>  
  26.         <url-pattern>*.jsp</url-pattern>  
  27.         <url-pattern>/j_spring_security_check</url-pattern>  
  28.         <url-pattern>/j_spring_security_logout</url-pattern>  
  29.     </filter-mapping> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值