Spring Security异常之You must provide a configuration attribute

案情描述: 在使用Spring Security框架进行开发的时候,跑出了 “You must provide a configuration attribute”这样的异常,异常详细信息如下:

org.springframework.beans.factory.BeanCreationException : Error creating bean with name ‘favSecurityMetadataSource‘ defined in class path resource [security/spring-security.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.favccxx.favsecurity.security.FavInvocationSecurityMetadataSourceService]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: You must provide a configuration attribute

案情分析:从上面的异常信息中可以得到“You must provide a configuration attribute”异常发生在自定义实现“FilterInvocationSecurityMetadataSource”的类中。为什么会发生这样的异常呢?通过接口层层深入,我们可以发现原来异常是在 SecurityMetadataSource 接口抛上来的,SecurityMetadataSource 接口的构造函数中需要一个配置参数。

在我们自实现FilterInvocationSecurityMetadataSource接口的类中,我们通常也会写类似“loadResourceMatchAuthority”这样加载资源匹配权限的方法,当发生上面的异常时,应该检查如下图所示的代码区域,设置断点,查找发生问题的主要代码。

时间: 2024-11-29 09:45:00

Spring Security异常之You must provide a configuration attribute的相关文章

Spring Security 4 新增特性

1.概述 a) 特性 以下是Spring Security 4.0的新特性 Web Socket 支持 测试支持 整合Spring Data CSRF令牌参数解析 更安全的默认设置 role权限不再必须使用ROLE_前缀,在之前的版本必须像下面这样在XML文件里进行配置: <intercept-url pattern="/**" access="hasRole('ROLE_USER')"/> 现在,我们可以选择省略掉ROLE_前缀.具体而言,无论ROLE

Spring Security OAuth2 Demo -- good

1. 添加依赖授权服务是基于Spring Security的,因此需要在项目中引入两个依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency> <dependency> <groupId>org.springf

Spring Security 4 整合Hibernate 实现持久化登录验证(带源码)

上一篇文章:Spring Security 4 整合Hibernate Bcrypt密码加密(带源码) 原文地址:http://websystique.com/spring-security/spring-security-4-remember-me-example-with-hibernate/ [相关已翻译的本系列其他文章,点击分类里面的spring security 4] 本教程将使用Spring Security 4 和hibernate向你展示持久化登录验证. 在持久化登录验证中,应用

Spring Security 4 整合Hibernate Bcrypt密码加密(带源码)

[相关已翻译的本系列其他文章,点击分类里面的spring security 4] [ 翻译by 明明如月 QQ 605283073] 上一篇文章: Spring Security 4 Hibernate整合 注解和xml例子(带源码) 下一篇文章:Spring Security 4 整合Hibernate 实现持久化登录验证(带源码) 原文地址:http://websystique.com/spring-security/spring-security-4-password-encoder-bc

spring boot系列--spring security (基于数据库)登录和权限控制

先说一下AuthConfig.java Spring Security的主要配置文件之一 AuthConfig 1 @Configuration 2 @EnableWebSecurity 3 public class AuthConfig extends WebSecurityConfigurerAdapter { 4 @Override 5 protected void configure(HttpSecurity httpSecurity) throws Exception { 6 http

spring boot跨域请求访问配置以及spring security中配置失效的原理解析

一.同源策略 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[origin]就是协议.域名和端口号.例如:http://www.baidu.com:80这个URL. 什么是同源 若地址里面的协议.域名和端口号均相同则属于同源. 是否是同源的判断 例如判断下面的URL是否与 http://www.a.com/test/index.html 同源 http://www.a

Spring boot 前后台分离项目 怎么处理spring security 抛出的异常

最近在开发一个项目 前后台分离的 使用 spring boot + spring security + jwt 实现用户登录权限控制等操作.但是 在用户登录的时候,怎么处理spring  security  抛出的异常呢?使用了@RestControllerAdvice 和@ExceptionHandler 不能处理Spring Security抛出的异常,如 UsernameNotFoundException等,我想要友好的给前端返回提示信息  如,用户名不存在之类的. 贴上我的代码: JWT

Spring Security对Acl的支持

对Acl的支持 目录 1.1           准备工作 1.2           表功能介绍 1.2.1     表acl_sid 1.2.2     表acl_class 1.2.3     表acl_object_identity 1.2.4     表acl_entry 1.3           Acl主要接口 1.4           配置AclService 1.4.1     配置DataSource 1.4.2     配置LookupStrategy 1.4.3    

Spring Security(19)——对Acl的支持

目录 1.1           准备工作 1.2           表功能介绍 1.2.1     表acl_sid 1.2.2     表acl_class 1.2.3     表acl_object_identity 1.2.4     表acl_entry 1.3           Acl主要接口 1.4           配置AclService 1.4.1     配置DataSource 1.4.2     配置LookupStrategy 1.4.3     配置AclAu