springsecurity的权限提示页面
最近项目中发现,用户在访问没有权限的页面的时候,系统返回了白页,后台也有日志报出如下:
12-13 17:34:33 [DEBUG] org.springframework.security.ui.ExceptionTranslationFilter.handleException(ExceptionTranslationFilter.java:167) - Access is denied (user is not anonymous); delegating to AccessDeniedHandler
org.springframework.security.AccessDeniedException: Access is denied
at org.springframework.security.vote.AffirmativeBased.decide(AffirmativeBased.java:68)
at org.springframework.security.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:262)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
看到很多BLOG都有记录如何配置这个权限的提示页面,比较全面的配置如下:
<beans:bean id="exceptionTranslationFilter"
class="org.springframework.security.ui.ExceptionTranslationFilter">
<beans:property name="accessDeniedHandler" ref="accessDeniedHandler" />
<beans:property name="authenticationEntryPoint" ref="authenticationEntryPoint"/>
</beans:bean>
<!-- 处理org.springframework.security.AccessDeniedException -->
<beans:bean id="accessDeniedHandler"
class="org.springframework.security.ui.AccessDeniedHandlerImpl">
<beans:property name="errorPage" value="/common/403.jsp" />
</beans:bean>
<!-- 处理org.springframework.security.AuthenticationException -->
<beans:bean id="authenticationEntryPoint"
class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint" >
<beans:property name="loginFormUrl" value="/user/login.do" />
<beans:property name="forceHttps" value="false" />
</beans:bean>
但却发现,我这样配置了,但是系统调用的,并没有按照我配置来走。原来是这里我采用了springsecurity2的一个配置:
<http auto-config="true" lowercase-comparisons="false"
session-fixation-protection="none" access-denied-page="/common/403.jsp">
里面的这个auto-config=true,就默认帮你把exceptionTranslationFilter给配置了,所以后面加也没有用了。
仔细一看,嘿嘿,后面不是有个参数,access-denied-page么,修改,晕。果然生效。看来以后要加配置之前,先看看这个<http>的文档先。貌似以前在ITSM项目遇到这个问题了,我就查看了文档并做了修改的,只是当时没有记录日志,久了就忘记了。唉,今天下午又调试了几个小时才发现。唉。印象深刻了吧,以后小心。
分享到:
相关推荐
3. **定义安全规则**: 在Spring Security配置文件中定义具体的认证和授权规则,如使用数据库存储用户信息、使用自定义登录页面等。 #### 四、Spring Security 2.x 概览 Spring Security 2.x不仅提供了强大的功能...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理。它提供了认证、授权和访问控制等功能,使得开发者可以轻松地在应用程序中实现复杂的安全需求。在这个名为 "mysecurity" 的压缩包中,很可能是...
为了提供更好的用户体验,我们可以配置一个自定义的访问拒绝处理器,重定向用户到特定的错误页面,展示友好提示信息。 **动态管理资源结合自定义登录页面** 在某些情况下,资源的访问控制可能需要动态更新。Spring...
结合Spring Security,可以实现登录验证后的跳转逻辑,以及不同权限用户的页面展示差异。 整合这三个组件的过程通常涉及以下几个步骤: 1. 配置Spring Security:定义安全配置类,设置过滤器链,实现自定义的认证...
SpringSecurity3提供了一套完整的登录和会话管理机制,包括登录页面的处理、密码加密、会话超时和并发会话控制等。 10. **异常处理**: 当访问控制失败时,SpringSecurity3会抛出相应的异常,如`...
在"SpringBoot+SpringSecurity+thymeleaf基础代码"项目中,我们可以看到这三个组件的集成和使用。 Spring Security提供了全面的安全管理解决方案,包括登录认证、权限控制和会话管理。它通过定义访问控制规则,保护...
在"TestSecurity"这个实例中,你将会看到一个简单的 Spring Security 配置和运行流程,包括登录、权限控制以及可能的错误处理。通过学习这个实例,你将对 Spring Security 有一个基础的认识,并能将其应用到实际项目...
Spring Security 3.1 支持消息资源文件,可以用来显示不同语言的安全相关提示。 9. **CSRF保护** 跨站请求伪造(Cross-Site Request Forgery)是一种常见的攻击方式。Spring Security 3.1提供了内置的CSRF防护,...
10. **国际化支持**:对于多语言应用,可以配置Spring Security的错误消息和登录提示的国际化。 在实际项目中,我们还需要根据业务需求进行调整,比如集成OAuth2、SAML等身份验证协议,或者自定义认证和授权流程。...
9. **国际化的提示信息**:Spring Security 允许你配置多语言提示信息,以适应不同地区的用户。 10. **MyEclipse工程**:这个教程源代码是用MyEclipse开发环境创建的,意味着你可以导入工程并直接运行,便于学习和...
### Spring Security 3 权限管理关键知识点解析 #### 一、Spring Security 3 概述 Spring Security 是一个强大的且高度可定制的身份验证和访问控制框架,它为基于 Java 的应用程序提供了广泛的保护机制。Spring ...
Spring Security的设计是模块化的,允许开发者根据需求扩展其功能,例如定制登录页面、自定义权限表达式、实现自定义认证和授权策略等。 **9. 安全测试** Spring Security提供了测试支持,可以方便地对安全配置...
4. **权限表达式(Expression-based Access Control)**:SpringSecurity支持基于SpEL(Spring Expression Language)的访问控制,允许开发者用简洁的表达式定义访问规则,例如`hasRole('ROLE_ADMIN')`或`@Secured('...
反之,若请求未通过验证,SpringSecurity会返回错误信息,前端则根据这些信息提示用户。 此外,SpringBoot结合SpringSecurity还可以实现CSRF(跨站请求伪造)防护、密码加密存储等安全特性,保障系统的安全性。同时...
Spring Security支持多语言,可以通过配置`MessageSource`来提供不同语言的安全提示信息。 9. **自定义登录表单** 默认登录表单可以通过`formLogin()`进行定制,包括登录提交地址、用户名和密码字段的名称等。 ...
《Spring Security 安全权限管理手册》是一份详尽阐述Spring Security框架在企业权限管理中的应用的教育资料。Spring Security是Java平台上的一个强大且高度可定制的身份验证和授权框架,广泛用于构建安全的Web应用...
8. **国际化的支持**:Spring Security支持多语言环境,可以在配置中定义不同语言的错误消息和提示。 9. **测试**:在开发过程中,对Spring Security的测试也是必不可少的。可以使用MockMVC进行模拟请求,检查认证...
### Spring Security 3 安全权限管理手册(最新) #### 概述 Spring Security 是一款广泛应用于Java EE系统的强大安全框架,它为开发者提供了全面且灵活的安全管理解决方案。本手册旨在深入探讨Spring Security 3的...
为了满足不同语言和地区的需求,Acegi Security支持多语言定制化,允许开发者根据实际需求调整错误消息和提示信息的语言和格式。 ##### 3.2 过滤器 过滤器是Acegi Security中的关键组件之一,用于拦截HTTP请求并对...
当Spring Security与Thymeleaf结合时,Spring Security通常用于处理用户认证和授权,Thymeleaf则用于展示动态生成的安全相关的UI元素,如登录表单、权限提示等。在实际项目中,开发者可以通过Thymeleaf的条件语句...