web.xml中添加security过滤器
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置security.xml
<http pattern="/403.jsp" security="none"/>
<http pattern="/login.jsp" security="none"/>
<http access-denied-page="/403.jsp"><!-- 当访问被拒绝时,会转到403.jsp -->
<form-login login-page="/login.jsp"
authentication-failure-url="/login.jsp?error=true"
default-target-url="/index.jsp" /><!-- 登录成功跳转到index.jsp -->
<logout logout-success-url="/login.jsp" />
<http-basic />
<!--
增加一个filter,这点与Acegi是不一样的,不能修改默认的filter了,这个filter位于FILTER_SECURITY_INTERCEPTOR之前
-->
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="myFilter" />
</http>
<!-- 配置过滤器 -->
<beans:bean id="myFilter" class="com.ss3.MySecurityFilter">
<!-- 用户拥有的权限 -->
<beans:property name="authenticationManager" ref="myAuthenticationManager" />
<!-- 用户是否拥有所请求资源的权限 -->
<beans:property name="accessDecisionManager" ref="myAccessDecisionManager" />
<!-- 资源与权限对应关系 -->
<beans:property name="securityMetadataSource" ref="mySecurityMetadataSource" />
</beans:bean>
<!-- 实现了UserDetailsService的Bean -->
<authentication-manager alias="myAuthenticationManager">
<authentication-provider user-service-ref="myUserDetailServiceImpl">
<password-encoder ref="passwordEncoder"><!-- md5加密:http://www.51240.com/md5jiami/ -->
<!--<salt-source user-property="username" />-->
</password-encoder>
</authentication-provider>
</authentication-manager>
<beans:bean id="myAccessDecisionManager" class="com.ss3.MyAccessDecisionManagerImpl"></beans:bean>
<beans:bean id="mySecurityMetadataSource" class="com.ss3.MySecurityMetadataSourceImpl">
</beans:bean>
<beans:bean id="myUserDetailServiceImpl" class="com.ss3.MyUserDetailServiceImpl">
</beans:bean>
<!-- 用户的密码加密或解密 -->
<beans:bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />
spring security框架加载流程
1.加载资源文件为一个map集合key为数据库中设置的请求的url,value为一个拥有这个url访问权限的用户角色的集合,如果资源文件没有值,则不进行任何拦截
2.客户端请求url,首先判断是否登录,没有登录返回错误
3.根据请求的url找到此url对应的访问角色集合,与当前用户的角色进行对比,查看当前用户是否有访问权限,没有权限的抛出异常,程序拦截并返回指定的页面,匹配正确返回页面
另外部分jar包在 http://jie66989.iteye.com/blog/1704769
分享到:
相关推荐
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
3. **SpringBoot整合SpringSecurity** - `spring-boot-starter-security`依赖:SpringBoot项目中添加此依赖即可自动配置SpringSecurity。 - 自定义登录页面:通过设置`loginPage`和`loginProcessingUrl`属性,可以...
这三份资料——"实战Spring Security 3.x.pdf"、"Spring Security 3.pdf" 和 "Spring Security使用手册.pdf" 将深入探讨这些概念,并提供实践指导,帮助读者掌握如何在实际项目中应用Spring Security。通过学习这些...
本笔记将深入探讨Spring Security的核心概念、配置以及如何在实际项目中应用。 一、Spring Security核心概念 1. **身份验证(Authentication)**:这是验证用户身份的过程。Spring Security提供了多种方式来实现,...
Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...
在"SpringSecurity笔记2-SpringSecurity命名空间"这个主题中,我们将深入探讨SpringSecurity配置的核心——命名空间。 SpringSecurity通过XML配置文件中的命名空间来简化设置过程,这些命名空间提供了丰富的元素和...
spring security学习笔记
3. **使用Spring Security的访问决策管理器(AccessDecisionManager)**:如果你希望控制哪些角色可以访问静态资源,可以实现自己的访问决策管理器,然后在配置中指定使用这个管理器。 4. **使用HTTP基本认证或OAuth2...
Spring Boot 整合 Spring Security 包含认证,授权,加密,验证码,前后端分离,记住密码,自定义组件等
Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...
springsecurity入门笔记+教程
在 `SpringSecurityTest01` 这个压缩包文件中,你可能找到了一个示例项目,它可能包含了配置类、控制器、视图和测试用例。通过分析这些代码,你可以更深入地理解如何在实际项目中应用 Spring Security。 总之,...
3. **面向切面编程(Aspect-Oriented Programming,AOP)**:Spring AOP允许开发者定义“切面”——跨越多个类的行为或责任。通过切点(Pointcut)和通知(Advice),可以在不修改原有代码的情况下添加新的功能。 4...
这个压缩包文件"视频配套笔记_Spring Security OAuth2.0认证授权_v1.1.rar"包含了对这一主题的详细解释和实例代码,旨在帮助开发者深入理解和应用OAuth2.0与Spring Security的集成。 首先,Spring Security是Spring...
**Spring Security OAuth 知识点详解** Spring Security OAuth 是一个广泛使用的安全框架,它提供了OAuth 2.0的实现,用于构建安全的Web应用程序和服务。OAuth允许第三方应用以受限制的方式访问用户的数据,同时...
Spring Security 是一个强大的Java安全框架,用于...总的来说,Spring Security 3的学习笔记和源码分析对提升安全开发技能大有裨益,不仅可以加深理论理解,还能在实际项目中灵活运用,构建更加健壮、安全的应用系统。