我正在努力用java配置的spring安全性来配置方法安全性.我的配置没有任何问题,直到我在任何控制器中使用@Secured注释.

Spring Security Config:(java config)

@Configuration

@EnableWebSecurity

@EnableGlobalMethodSecurity(securedEnabled=true)

public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired

private DataSource dataSource;

@Override

public void configure(WebSecurity web) throws Exception {

web

.ignoring()

.antMatchers("/webjars/**","/css/**", "/less/**","/img/**","/js/**");

}

@Autowired

public void registerGlobal(AuthenticationManagerBuilder auth) throws Exception {

ShaPasswordEncoder shaPasswordEncoder = new ShaPasswordEncoder(256);

auth

.jdbcAuthentication()

.dataSource(dataSource)

.usersByUsernameQuery(getUserQuery())

.authoritiesByUsernameQuery(getAuthoritiesQuery())

.passwordEncoder(shaPasswordEncoder);

}

@Override

protected void configure(HttpSecurity http) throws Exception {

http

.authorizeRequests()

.anyRequest().hasAuthority("BASIC_PERMISSION")

.and()

.formLogin()

.loginPage("/login")

.defaultSuccessUrl("/success-login", true)

.failureUrl("/error-login")

.loginProcessingUrl("/process-login")

.usernameParameter("security_username")

.passwordParameter("security_password")

.permitAll()

.and()

.logout()

.logoutSuccessUrl("/login")

.logoutUrl("/logout")

.permitAll()

.and()

.rememberMe()

.key("04E87501B3F04DB297ADB74FA8BD48CA")

.and()

.csrf()

.disable();

}

private String getUserQuery() {

return "SELECT username as username, password as password, active as enabled "

+ "FROM employee "

+ "WHERE username = ?";

}

private String getAuthoritiesQuery() {

return "SELECT DISTINCT employee.username as username, permission.name as authority "

+ "FROM employee, employee_role, role, role_permission, permission "

+ "WHERE employee.id = employee_role.employee_id "

+ "AND role.id = employee_role.role_id "

+ "AND role.id = role_permission.role_id "

+ "AND permission.id = role_permission.permission_id "

+ "AND employee.username = ? "

+ "AND employee.active = 1";

}

}

只要将@Secured(“EMPLOYEE_DELETE”)注释添加到任何控制器方法,我就会收到以下异常.

java.lang.IllegalArgumentException: Expecting to only find a single bean for type interface org.springframework.security.authentication.AuthenticationManager, but found []

所以我添加了一个AuthenticationManager bean:

@Bean

@Override

public AuthenticationManager authenticationManagerBean() throws Exception {

return super.authenticationManagerBean();

}

但是这会导致另一个错误:

java.lang.IllegalStateException: Cannot apply org.springframework.security.config.annotation.authentication.configurers.provisioning.JdbcUserDetailsManagerConfigurer@34e81675 to already built object

似乎我必须与配置的jdbcAuthentication共享authenticationManagerBean,但我无法做到这一点.感谢您的帮助!

security java的配置_Spring Security:无法使用java config配置方法安...相关推荐

  1. java oauth2搭建_Spring Security 实战干货:OAuth2授权请求是如何构建并执行的

    在Spring Security 实战干货:客户端OAuth2授权请求的入口中我们找到了拦截OAuth2授权请求入口/oauth2/authorization的过滤器OAuth2Authorizati ...

  2. Linux配置 Java 以及解决普通用户无法使用java

    配置JAVA环境 5. 下载JAVA jdk 6. 2.配置JAVA 环境变量 切换配置文件 vi /etc/profile JAVA_HOME=/jak路径 切换到jdk所在文件夹 使用pwd命令就 ...

  3. java datasource 配置_Spring boot 基于注解方式配置datasource

    Spring boot 基于注解方式配置datasource Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionFactor ...

  4. OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个前面也已经说过了,但是这块的配置,会麻烦一点点,所以这里又说了一下,当然也有不一样的地方,会指 ...

  5. OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这些前面前面授权服务配置那一节已经都说了一遍了,这里说的不会那么详细了,可能有一点不一样的地方会点 ...

  6. OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 1.咱们先来搭建这个授权微服务,可以看到首先我们要写一个配置类叫做: AuthorizationS ...

  7. Spring Security OAuth2.0_实现分布式认证授权_网关资源服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记152

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们再继续看,因为我们说,我们的网关要进行认证对吧,对来的请求进行认证. 然后我们这里把网关微 ...

  8. Spring Security OAuth2.0_总结_Spring Security OAuth2.0认证授权---springcloud工作笔记157

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 开通了个人技术微信公众号:credream,有需要的朋友可以添加相互学习

  9. 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 >>>>下面是个总结 让我们仔细分析认证过程: 1. 用户提交用户名.密码 ...

最新文章

  1. Xamarin Essentials教程地理定位Geolocation
  2. uni-app手机横屏后界面错乱解决办法
  3. Spring 如何解决循环依赖?
  4. 忘记手机绑定过的UC/交易猫账号怎么找回
  5. CNN结构:色彩空间建模-色彩空间分析
  6. stm32 断路功能和互补输出
  7. WEB API Filter的使用以及执行顺序
  8. html5在别的电脑上打不开,U盘在别台电脑上打不开的原因分析及解决
  9. 排名算法(一)--PageRank
  10. Java获取程序或项目路径的常用方法
  11. Atitit 人员级别评定法 目录 1.1. 十级评定法1--10 vs 年级评定法 1 1.2. 工龄评定 职级 岗位级别 1 2. 修订系数 学历*授课+绩效 1 3. 计算方法 1
  12. R可视化绘图二-ggplot2
  13. 为什么创业者要假装读过《从0到1》和《创业维艰》?
  14. 基于java的在线医院挂号系统设计(含源文件)
  15. Android 隐藏/透明小白条
  16. 《图像处理实例》 之 疏密程度统计
  17. 页面转化成静态页面,或者伪静态页面 .
  18. 基于jsp+servlet的房屋出租系统
  19. 初级会计实务--第七章第三节、产品成本的归集和分配
  20. CentOS 6.8 时间同步

热门文章

  1. 专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?
  2. 简易理解设计模式之:责任链模式——OA中请假流程示例
  3. 计算机四层---Iaas、Pass、Saas、Daas
  4. python培训深圳周末班
  5. mysql 索引案例与索引策略
  6. 您可以在Windows PC或Android手机上使用iMessage吗?
  7. python人物抠图算法_Python实现AI自动抠图实例解析
  8. ubuntu执行uci出现 uci: error while loading shared libraries: lib
  9. 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)
  10. 调用Runtime.getRuntime().exec()执行Linux脚本导致程序挂住的问题分析