`
lion222
  • 浏览: 122169 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

java Spring Security 总结一 7

阅读更多

    accessDeniedHandler用于处理AccessDeniedException异常,当用户没有权限访问当前请求的资源时抛出此异常,并跳转自这里配置的/accessDenied.jsp页面。

    authenticationEntryPoint(认证入口点),这里定义了用户登录的页面。系统为我们提供了3个认证入口点的实现:

 

认 证 入 口 点

作           用

BasicProcessingFilterEntryPoint

通过向浏览器发送一个HTTP 401(未授权)消息,由浏览器弹出登录对话框,提示用户登录

AuthenticationProcessingFilterEntryPoint

将用户重定向到一个基于HTML表单的登录页面

CasProcessingFilterEntryPoint

将用户重定向至一个Yale CAS登录页面

    这里我们使用AuthenticationProcessingFilterEntryPoint认证入口点,提供给用户一个友好的登录界面,只是为了给用户更好的体验。

    filterSecurityInterceptor(过滤器安全拦截器),该过滤器首先调用认证管理器来判断用户是否已被成功验证,如果没有被验证则重定向到登录界面。否则,从Authentication获取用户的权限信息,然后从objectDefinitionSource中获取URL所对应的权限,最后调用accessDecisionManager(访问决策管理器)来判断用户当前拥有的权限是否与当前受保护的URL资源对应的权限匹配,如果匹配就可以访问该URL资源,否则将抛出AccessDeniedException异常并返回客户端浏览器一个403错误(如果用户定义了 accessDenied页面则会被重定向到该页,见:异常处理过滤器exceptionTranslationFilter中配置的 accessDeniedHandler Bean),访问决策管理的的工作机制将在随后更详细介绍,这里先给出过滤器安全拦截器的配置如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 <bean id="filterSecurityInterceptor"
 2 
 3     class="org.springframework.security.intercept.web.FilterSecurityInterceptor"
 4 
 5     p:authenticationManager-ref="authenticationManager"
 6 
 7     p:accessDecisionManager-ref="accessDecisionManager">
 8      <property name="objectDefinitionSource">
 9         <value><![CDATA[
10 
11      CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
12            PATTERN_TYPE_APACHE_ANT
13            /admins/**=ROLE_SUPERVISOR      
14              /user/**=ROLE_USER,IS_AUTHENTICATED_REMEMBERED       
15              /default.jsp=ROLE_USER,IS_AUTHENTICATED_REMEMBERED
16            /**=IS_AUTHENTICATED_ANONYMOUSLY
17        ]]></value>
18      </property>
19 </bean>

    从配置可以看出来,过滤器安全拦截器用到了我们前面配置的认证管理器,过滤器安全拦截器使用authenticationManager并调用它的 providers(提供者列表)来对用户的身份进行验证并获取用户拥有的权限。如果用户被成功认证,过滤器安全拦截器将会使用 accessDecisionManager(访问决策管理器)来判断已认证的用户是否有权限访问受保护的资源,这些受保护的资源由 objectDefinitionSource属性定义。

    访问决策管理器(accessDecisionManager):

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 <bean id="accessDecisionManager"
 2     class="org.springframework.security.vote.AffirmativeBased"
 3      p:allowIfAllAbstainDecisions="false">
 4      <property name="decisionVoters">
 5         <list>
 6            <bean class="org.springframework.security.vote.RoleVoter"/>
 7            <bean class="org.springframework.security.vote.AuthenticatedVoter"/>
 8         </list>
 9      </property>
10 </bean>
分享到:
评论

相关推荐

    SpringSecurity项目

    springsecurity是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring安全性的真正威力在于它可以很容易地扩展以满足定制需求。 spring security 的核心功能主要包括: 认证 (你是...

    基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip

    基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip基于Java Spring Security的关注微信公众号即登录的设计与实现源码.zip ...

    SpringSecurity.zip

    ​ Spring Security:spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转...

    java学习之SpringSecurity配置了登录链接无权限

    我们在使用SpringSecurity作为后台权限框架的时候,框架给我们提供了配置登录请求的接口,供我们配置登录链接,当我们配置了登录链接地址后,前端访问登陆请求的时候显示无权限。 异常分析 由于SpringSecurity的...

    springsecurity学习笔记

    三更springsecurity学习笔记

    spring security3.0所需要的最精简的jar包

    早一段时间学习了springsecurity3.0 框架,在开始阶段不知道导入那些必需jar包,经过摸索,总结出来最精简的jar包

    SpringSecurity课程文档下载 pdf 教学

    SpringSecurity课程文档下载 pdf 教学

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    spring security 4.0.0所需jar包

    使用springsecurity做权限管理时,必须要有的jar,当然有些可以不用,你可以按需加入你的项目 @最美最好的你 vx: dengqun2011

    Spring Security权限管理开发手册

    Spring Security 3 Spring Security权限管理开发手册 详细介绍了web app中如何一步步加入 spring security 框架支持,配置灵活,功能强大 中文教程及例子-Spring Security 3 Spring Security rights management ...

    spring_security_3.1

    和spring集成使用的完美权限框架,学习java一定要学会spring_security

    spring-security-oauth2-2.3.5.RELEASE-API文档-中文版.zip

    标签:spring、security、springframework、oauth2、oauth、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代

    Spring Security 把授权信息写入数据库

    Spring Security 把授权信息写入数据库

    一个比较好的spring security实例

    一个比较好的spring security实例

    spring-security-crypto-5.5.2-API文档-中文版.zip

    标签:springframework、security、spring、crypto、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

    基于springBoot+springSecurity+jwt实现前后端分离用户权限认证

    springSecurity也有很多种权限认证方式,本项目主要实现基于接口授权,也就是说通过注解给controller赋予权限,用户只有拥有某个接口的权限才能成功访问这个接口,从而实现不同用户拥有不同访问权限;

    spring-security-core-5.5.2-API文档-中文版.zip

    标签:springframework、security、spring、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    Spring Security3 安全 个人总结

    Spring Security3 拦截 过滤器 安全,框架原理入门

    安全框架Spring Security深入浅出视频教程

    视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 首先,SSM环境中我们通过xml配置的...Springsecurity在两种不同的开发模式中使用,有经典的独立web后台管理系统,也有时下最流行的前后端分离场景。

    Spring Security

    Spring Security是什么? 历史 发布版本号 Getting Spring Security Spring Security 4.1新特性 Java 配置提升 Web应用程序安全性提升 授权改进 密码模块的改进 测试的改进 一般的改进 样品和指南 (Start Here) Java ...

Global site tag (gtag.js) - Google Analytics