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学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的...同时,结合实际案例的学习,能够帮助我们更好地理解和掌握Spring Security的核心概念与使用技巧。
在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...
在"SpringSecurity2Demo"这个项目中,我们可以预期看到以下组成部分: 1. **配置文件**: `spring-security.xml`,这是Spring Security的核心配置文件,包含了过滤器链的配置、用户认证源、授权规则等。 2. **控制...
Spring Security是Java平台上广泛使用的安全框架,它为Web应用提供了全面的安全管理解决方案,包括身份验证、授权以及会话管理等关键功能。 在Spring Security中,身份验证是用户访问应用的第一步,框架提供多种...
在"Spring Security 3 多页面登录 小秘密小运气"这个主题中,我们可以深入探讨Spring Security 3如何支持多个登录页面以及其中可能涉及的一些技巧和策略。 首先,Spring Security的核心功能包括身份验证、授权、...
总的来说,"狂神spring-security静态资源.zip"可能是一份非常有价值的教程资料,涵盖了Spring Security的基础知识和实践技巧,特别是关于如何保护静态资源的示例。对于想要提升Spring Security技能的开发者来说,这...
通过理解和实践这个模板,你可以深入学习Spring Security的原理和使用技巧,从而提升你的Web应用安全性。这个模板特别适合初学者进行练习,但对于经验丰富的开发者来说,也具有一定的参考价值。
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理。...这个高级详细开发指南将详细解析配置和代码,帮助读者深入理解Spring Security 3.1的工作原理和使用技巧,以便在实际项目中应用。
本手册"Spring Security安全权限管理手册-family168"将深入探讨Spring Security的核心概念和实践技巧。 1. **认证与授权**: - **认证**:Spring Security提供了多种认证方式,如基于用户名和密码的认证、基于令牌...
手册最后提供了最佳实践和示例代码,旨在帮助开发者掌握Spring Security的使用技巧。综上所述,本手册是一份全面的Spring Security知识和实践指南,助力开发人员快速理解和应用Spring Security。
### Spring Security 安全权限管理手册知识...以上内容概述了《Spring Security 安全权限管理手册》的主要知识点,覆盖了从基础知识到高级应用的多个方面,旨在帮助开发者全面掌握Spring Security的安全权限管理技巧。
通过阅读《Spring Security3 张卫滨(译)》,开发者可以深入理解Spring Security的工作原理,掌握其配置与使用技巧,从而在实际项目中构建安全可靠的Web应用程序。书中的实例和讲解将有助于解决在实现复杂安全需求时...
### Spring Security 源码分析知识点 #### 一、Spring Security 概述 Spring Security 是一个强大且可...通过对这些内容的深入学习和理解,可以更好地掌握 Spring Security 的工作原理及其在实际项目中的应用技巧。
### Spring Security3 配置与使用详解 #### 一、Spring Security3 概览 Spring Security 是一个功能...无论是对于初学者还是有经验的开发人员来说,掌握 Spring Security3 的核心概念和配置技巧都是非常有价值的。
而"工具"可能指的是使用的一些辅助工具,如IDE插件或调试技巧,以更有效地理解和使用Spring Security。 在压缩包的"security"文件夹中,可能包含示例代码、配置文件或测试用例,这些都能帮助你亲手实践Spring ...
《family168SpringSecurity管理手册》是一份深入解析Spring Security框架的重要参考资料,旨在帮助开发者理解和掌握这个强大的安全控制框架。Spring Security是Spring生态体系中的重要组成部分,它为Java应用程序...
版本3.2.9是Spring Security的一个较旧但仍然广泛使用的版本。它提供了基于角色的访问控制、HTTP安全、CSRF(跨站请求伪造)防护等功能。在"spring-security-3.2.9.RELEASE-dist.zip"中,你将获得Spring Security的...
"SpringSecurity学习总结.pdf" 很可能是一位经验丰富的开发者对Spring Security学习的个人总结,可能包含了一些实战中的技巧和最佳实践。这类资料往往具有很高的实用价值,因为它通常包含了作者在实际项目中遇到的...
标题中的"annotation hibernate struts spring springsecurity"涵盖了四个关键的Java开发框架和技术:注解(Annotation)、Hibernate、Struts和Spring Security。这些是构建现代Java企业级应用的基础组件。 **注解...