最近在做spring-security权限控制,http里配置intercept-url进行权限控制的时候,当用户无权访问该页面的时候显示空白页,我想跳转到指定页面,在网上找了一下都说是配置access-denied-page即可跳转到指定页面,可我按此方法还是显示空白页,那位大侠用过此框架的,希望站出来说两句。在此万分感谢。。。,代码如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd"><!--
FilterChainProxy会按顺序来调用这些filter,使这些filter能享用Spring Ioc的功能,
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON 定义url比较前先转为小写
PATTERN_TYPE_APACHE_ANT 定义使用Apache ant的匹配模式
--><bean id="springSecurityFilterChain" class="org.springframework.security.util.FilterChainProxy"><property name="filterInvocationDefinitionSource"><value></value></property></bean><!--
异常处理filter(异常转换过滤器),主要是处理AccessDeniedException和AuthenticationException,
将给每个异常找到合适的"去向"
--><bean id="exceptionTranslationFilter" class="org.springframework.security.ui.ExceptionTranslationFilter"><property name="accessDeniedHandler" ref="accessDeniedHandler"></property><property name="authenticationEntryPoint" ref="authenticationEntryPoint"></property></bean><!-- 处理AccessDeniedException --><bean id="accessDeniedHandler" class="org.springframework.security.ui.AccessDeniedHandlerImpl"><property name="errorPage" value="/403.jsp"></property></bean><bean id="authenticationEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint"><property name="loginFormUrl" value="/login.html"></property><property name="forceHttps" value="false"></property></bean><authentication-manager alias="authenticationManagerAlias"></authentication-manager><bean id="accessDecisionManager" class="com.shului.tuan.webapp.security.CustomAccessDecisionManager"><property name="allowIfAllAbstainDecisions" value="false"></property><property name="decisionVoters"><list><bean class="org.springframework.security.vote.RoleVoter"></bean><bean class="org.springframework.security.vote.AuthenticatedVoter"></bean></list></property></bean><bean id="authenticationProcessingFilter" class="com.shului.tuan.webapp.filter.CustomAuthenticationFilter"><custom-filter before="AUTHENTICATION_PROCESSING_FILTER"></custom-filter><property name="filterProcessesUrl" value="/j_spring_security_check"></property><property name="alwaysUseDefaultTargetUrl" value="true"></property><property name="defaultTargetUrl" value="/manage/admin/index.html"></property><property name="authenticationFailureUrl" value="/login.html?error=true"></property><property name="authenticationManager" ref="authenticationManagerAlias"></property></bean><bean id="authenticationProcessingFilterEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint"><property name="loginFormUrl" value="/403.jsp"></property><property name="forceHttps" value="false"></property></bean><!--
auto-config:包含<form-login />、<http-basic />、<logout />三项默认配置,如果自己配置则覆盖默认配置
access-denied-page:出错(eg没有权限)后跳转的页面,没有该属性,则抛出403错误-访问指定资源被禁止
access-decision-manager-ref="accessDecisionManager":当角色名前缀不是ROLE_时,需要自定义访问策略管理器
--><http auto-config="false" lowercase-comparisons="false" access-denied-page="/403.jsp" entry-point-ref="authenticationProcessingFilterEntryPoint"><intercept-url pattern="/admin/*.html*" access="ROLE_ADMIN,ROLE_ADMIN_YHGLY"></intercept-url><intercept-url pattern="/admin/**/*.html*" access="ROLE_ADMIN"></intercept-url><intercept-url pattern="/sales/*.html*" access="ROLE_SALES"></intercept-url><intercept-url pattern="/sales/**/*.html*" access="ROLE_SALES"></intercept-url><intercept-url pattern="/login.html*" access="ROLE_ANONYMOUS,ROLE_ADMIN_0,ROLE_SALES,ROLE_SUPPLIER,ROLE_USER"></intercept-url><form-login login-page="/login.html" default-target-url="/index.jsp" authentication-failure-url="/403.jsp"></form-login><logout logout-success-url="/login.html"></logout><remember-me user-service-ref="userDao" key="e37f4b31-0c45-11dd-bd0b-0800200c9a66"></remember-me><!-- --><anonymous></anonymous></http><authentication-provider user-service-ref="userDao"><password-encoder ref="passwordEncoder"></password-encoder></authentication-provider><!-- Override the default password-encoder (SHA) by uncommenting the following and changing the class --><!-- <bean id="passwordEncoder" class="org.springframework.security.providers.encoding.ShaPasswordEncoder"/> --><global-method-security jsr250-annotations="enabled" secured-annotations="enabled"><protect-pointcut expression="execution(* com.shului.tuan.service.UserManager.getDataCount(..))" access="ROLE_ADMIN,ROLE_ADMIN_0,ROLE_SALES"></protect-pointcut><protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN"></protect-pointcut></global-method-security></beans>
分享到:
相关推荐
### Spring Security 多登录页面配置详解 在许多大型企业级应用中,为了更好地实现权限管理和用户体验,往往会采用多个登录页面的方式来进行用户身份验证。这种方式能够有效地将不同类型的用户(如前台用户、后台...
Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户身份的验证,以确保用户的...
在"Spring Security 3 多页面登录 小秘密小运气"这个主题中,我们可以深入探讨Spring Security 3如何支持多个登录页面以及其中可能涉及的一些技巧和策略。 首先,Spring Security的核心功能包括身份验证、授权、...
- **XML配置**:Spring Security 原本支持XML配置,开发者可以在`security:http`标签下配置安全行为,如设置访问限制、登录页面等。 - **Java配置**:随着Spring Boot的发展,Spring Security也提供了Java配置方式...
在Spring Security框架中实现多个登录页面的配置是一项高级特性,主要应用于区分前端用户与后端管理员的不同登录需求。本文将详细介绍如何通过Spring Security配置多个登录页面,并为不同类型的用户设置不同的登录...
5. **异常处理**:当安全规则不满足时,Spring Security会抛出相应的安全异常,如`AccessDeniedException`表示用户无权访问,`AuthenticationException`表示认证失败。这些异常可以被自定义处理,以返回友好的错误...
在Spring Security框架中,RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的授权方法。在这种方法中,角色是指与一系列权限相关联的用户分组。在用户、角色、权限、菜单之间,存在复杂的多对多...
8. **表达式语言(SpEL)**:Spring Security 使用Spring Expression Language(SpEL)来定义访问控制规则,允许开发者用更灵活的方式定义谁可以访问什么。 在"springsecurity学习笔记"中,你可能会涉及以下主题: ...
在实际项目中,我们还需要配置安全拦截规则,比如使用WebSecurityConfigurerAdapter的configure(HttpSecurity http)方法,定义哪些URL需要保护,哪些可以匿名访问。 最后,Spring Security提供了丰富的日志和审计...
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...
- 自定义安全配置:可以覆盖`configure(HttpSecurity http)`方法,定义HTTP安全行为,如CSRF保护、URL访问权限等。 3. **SpringBoot整合SpringSecurity** - `spring-boot-starter-security`依赖:SpringBoot项目...
- `logout-success-url`定义了注销成功后的跳转页面。 为了自定义登录页面,你需要创建一个处理用户登录请求的控制器。这个控制器通常会处理登录表单的POST请求,进行身份验证,并根据结果重定向到相应的URL。例如...
在微服务架构中,Spring Security 可以帮助我们保护每个微服务的入口点,确保只有经过验证的用户才能访问受保护的资源。 整合Spring Security到Spring Cloud Gateway的过程通常包括以下步骤: 1. **配置Redis**:...
如果尝试访问无权访问的页面,Spring Security 将阻止并重定向到错误页面。 **6. 进阶使用** - **角色与权限**:Spring Security 支持角色和权限的概念,你可以定义不同角色并分配不同的权限,然后在访问控制中...
9. **自定义**:Spring Security非常灵活,允许开发者根据需求自定义大部分组件,如访问决策管理器、权限评估器等,以满足特定业务场景。 10. **与其他Spring框架的集成**:Spring Security与Spring Boot、Spring ...
Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它提供了许多功能,包括登录表单、记住我功能、多身份验证器、基于注解的安全配置、CSRF 防护、OAuth2 客户端和服务端支持等。Spring Security ...
本文详细介绍了 Spring Security 跳转页面失败问题的解决方法,并详细解释了 Spring Security 的基本概念、权限控制、antMatchers 的使用、permitAll 的使用、SecurityConfig 的使用、HttpSecurity 的使用、Spring ...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、权限授权、会话管理、CSRF防护以及基于HTTP的访问控制。在这个例子中,我们将...
**5.5 Spring Security 中的访问控制** - **安全和 AOP 建议**:利用面向切面编程(AOP)来实现细粒度的访问控制。 - **安全对象和 AbstractSecurityInterceptor**:安全拦截器实现了对业务层方法调用的安全性控制。 ...