`
fortaotao
  • 浏览: 47635 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SpringSecurity使用技巧

阅读更多

1、鉴权处理页通常包括四个方面的设定,分别是鉴权失败、鉴权成功、未鉴权访问、已鉴权但访问了受保护权限。如何自

 

定义这四类处理。

 

鉴权失败的默认处理页面是"/spring_security_login?login_error",其默认处理类为SimpleUrlAuthenticationFailureHandler。 

 

鉴权成功的默认处理页面是"/",其默认处理类为SimpleUrlAuthenticationSuccessHandler。 

 

自定义配置如下:

 

 <beans:bean id="authenticationProcessingFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationProcessingFilter">
  <beans:property name="authenticationManager" ref="authenticationManager"/>
        <beans:property name="authenticationFailureHandler">
            <beans:bean class="example.MyAuthenticationFailureHandler">
                <beans:property name="defaultFailureUrl" value="/pages/Login/login.do?error=true"/>
            </beans:bean>
        </beans:property>
        <beans:property name="authenticationSuccessHandler">
            <beans:bean class="example.MyAuthenticationSuccessHandler">
                <beans:property name="defaultTargetUrl" value="/"/>
            </beans:bean>
        </beans:property>
    </beans:bean>

另外在<http>中增加配置如下:

 

<custom-filter before="AUTHENTICATION_PROCESSING_FILTER" ref="authenticationProcessingFilter"/>

 

其中的example.MyAuthenticationFailureHandler和example.MyAuthenticationSuccessHandler为自定义的失败与成功处理类,源码如下:

 

public class MyAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler{
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
            AuthenticationException exception) throws IOException, ServletException {
        //增加自己的处理逻辑
        super.onAuthenticationFailure(request, response, exception);
    }
}

 

public class MyAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler{
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
            Authentication auth) throws IOException, ServletException {
        //增加自己的处理逻辑       

        super.onAuthenticationSuccess(request, response, auth);
    }
}

 

未鉴权访问、已鉴权但访问了受保护权限的自定义配置如下:

 

 <beans:bean id="authenticationEntryPoint"
  class="example.MyAuthenticationEntryPoint">
  <beans:property name="loginFormUrl" value="/login.htm" />
 </beans:bean>

 <beans:bean id="accessDeniedHandler"
  class="example.MyAccessDeniedHandler">
  <beans:property name="errorPage" value="/accessDenied.htm" />
 </beans:bean>

另外在<http>中增加配置如下:

 

<http entry-point-ref="authenticationEntryPoint">

    <access-denied-handler ref="accessDeniedHandler"/>

</http>

 

其中的example.MyAuthenticationEntryPoint和example.MyAccessDeniedHandler源码参考如下:

 

public class MyAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException)
            throws IOException, ServletException {

        //增加自己的处理逻辑

        super.commence(request, response, authException);
    }
}

 

public class MyAccessDeniedHandler extends AccessDeniedHandlerImpl{
    public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)
    throws IOException, ServletException {
        //增加自己的处理逻辑
        super.handle(request, response, accessDeniedException);
    }
}

分享到:
评论

相关推荐

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    精彩:Spring Security 演讲PPT

    ### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的...同时,结合实际案例的学习,能够帮助我们更好地理解和掌握Spring Security的核心概念与使用技巧。

    SpringSecurity入门小demo(SSM+Spring Security)

    在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...

    Spring Security3 Demo

    在"SpringSecurity2Demo"这个项目中,我们可以预期看到以下组成部分: 1. **配置文件**: `spring-security.xml`,这是Spring Security的核心配置文件,包含了过滤器链的配置、用户认证源、授权规则等。 2. **控制...

    2016_Spring Security Essentials

    Spring Security是Java平台上广泛使用的安全框架,它为Web应用提供了全面的安全管理解决方案,包括身份验证、授权以及会话管理等关键功能。 在Spring Security中,身份验证是用户访问应用的第一步,框架提供多种...

    spring security 3 多页面登录 小秘密小运气

    在"Spring Security 3 多页面登录 小秘密小运气"这个主题中,我们可以深入探讨Spring Security 3如何支持多个登录页面以及其中可能涉及的一些技巧和策略。 首先,Spring Security的核心功能包括身份验证、授权、...

    狂神spring-security静态资源.zip

    总的来说,"狂神spring-security静态资源.zip"可能是一份非常有价值的教程资料,涵盖了Spring Security的基础知识和实践技巧,特别是关于如何保护静态资源的示例。对于想要提升Spring Security技能的开发者来说,这...

    springSecurity模板

    通过理解和实践这个模板,你可以深入学习Spring Security的原理和使用技巧,从而提升你的Web应用安全性。这个模板特别适合初学者进行练习,但对于经验丰富的开发者来说,也具有一定的参考价值。

    spring security3.1高级详细开发指南

    Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理。...这个高级详细开发指南将详细解析配置和代码,帮助读者深入理解Spring Security 3.1的工作原理和使用技巧,以便在实际项目中应用。

    Spring Security安全权限管理手册 html

    本手册"Spring Security安全权限管理手册-family168"将深入探讨Spring Security的核心概念和实践技巧。 1. **认证与授权**: - **认证**:Spring Security提供了多种认证方式,如基于用户名和密码的认证、基于令牌...

    springsecurity参考手册中文word版最新版本

    手册最后提供了最佳实践和示例代码,旨在帮助开发者掌握Spring Security的使用技巧。综上所述,本手册是一份全面的Spring Security知识和实践指南,助力开发人员快速理解和应用Spring Security。

    Spring Security 安全权限管理手册.pdf

    ### Spring Security 安全权限管理手册知识...以上内容概述了《Spring Security 安全权限管理手册》的主要知识点,覆盖了从基础知识到高级应用的多个方面,旨在帮助开发者全面掌握Spring Security的安全权限管理技巧。

    Spring Security3 张卫滨(译)

    通过阅读《Spring Security3 张卫滨(译)》,开发者可以深入理解Spring Security的工作原理,掌握其配置与使用技巧,从而在实际项目中构建安全可靠的Web应用程序。书中的实例和讲解将有助于解决在实现复杂安全需求时...

    spring security源码分析.pdf

    ### Spring Security 源码分析知识点 #### 一、Spring Security 概述 Spring Security 是一个强大且可...通过对这些内容的深入学习和理解,可以更好地掌握 Spring Security 的工作原理及其在实际项目中的应用技巧。

    spring security3配置和使用

    ### Spring Security3 配置与使用详解 #### 一、Spring Security3 概览 Spring Security 是一个功能...无论是对于初学者还是有经验的开发人员来说,掌握 Spring Security3 的核心概念和配置技巧都是非常有价值的。

    springsecurity3.1.3 案例

    而"工具"可能指的是使用的一些辅助工具,如IDE插件或调试技巧,以更有效地理解和使用Spring Security。 在压缩包的"security"文件夹中,可能包含示例代码、配置文件或测试用例,这些都能帮助你亲手实践Spring ...

    family168SpringSecurity管理手册

    《family168SpringSecurity管理手册》是一份深入解析Spring Security框架的重要参考资料,旨在帮助开发者理解和掌握这个强大的安全控制框架。Spring Security是Spring生态体系中的重要组成部分,它为Java应用程序...

    spring-security-3.2.9和spring-framework-3.2.4的jar包和源码

    版本3.2.9是Spring Security的一个较旧但仍然广泛使用的版本。它提供了基于角色的访问控制、HTTP安全、CSRF(跨站请求伪造)防护等功能。在"spring-security-3.2.9.RELEASE-dist.zip"中,你将获得Spring Security的...

    spring security 优秀中文资料+例子(包含多个中文资料,很全)

    "SpringSecurity学习总结.pdf" 很可能是一位经验丰富的开发者对Spring Security学习的个人总结,可能包含了一些实战中的技巧和最佳实践。这类资料往往具有很高的实用价值,因为它通常包含了作者在实际项目中遇到的...

    annotation hibernate struts spring springsecurity API中英文均有

    标题中的"annotation hibernate struts spring springsecurity"涵盖了四个关键的Java开发框架和技术:注解(Annotation)、Hibernate、Struts和Spring Security。这些是构建现代Java企业级应用的基础组件。 **注解...

Global site tag (gtag.js) - Google Analytics