我目前想实现这样的东西:
@Resource
private UserDetailsService userDetailsService;
@Bean
public DaoAuthenticationProvider authProvider() {
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
authProvider.setUserDetailsService(userDetailsService);
authProvider.setPasswordEncoder(passwordEncoder());
return authProvider;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider());
}
但是在中,我们将重点关注authProvider()方法和configure()
随着最近的消息,WebSecurityConfigrerAdapter
已被弃用。经过研究,我发现了一件事:
@Configuration
@EnableWebSecurity
public class SpringSecurity {
@Resource
private UsersService usersService;
@Bean
public Argon2PasswordEncoder passwordEncoder() {
return new Argon2PasswordEncoder();
}
@Bean
public DaoAuthenticationProvider authProvider() {
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
authProvider.setUserDetailsService(usersService);
authProvider.setPasswordEncoder(passwordEncoder());
return authProvider;
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider());
}
.......
所以我也不得不这么做
@EnableAsync(proxyTargetClass = true)
@EnableCaching(proxyTargetClass = true)
这解决了另一个问题。但现在,我发现了这个错误。
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
...
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
...
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'springSecurity': Requested bean is currently in creation: Is there an unresolvable circular reference?
这也是我的用户服务
@Service
public class UsersService implements UserDetailsService {
@Autowired
private UsersRepository usersRepository;
...
你们介意帮我解决这个问题!谢谢:)
我还想提一下,我还没有在网上找到答案
这个问题讨论了这样一个事实,即WebSecurityConfigureAdapter现在已被弃用,同时也使用了UserDetailsService。
也许这会有帮助。
我的代码中有多个WebSecurity配置适配器: 当我从ajax请求访问我的站点时,我得到:从源http://localhost:8082访问http://localhost:8080/user/authenticate的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过权限改造检查:请求的资源上不存在访问控制允许源标头。 我想我的WebSecurity配置适配器中有一些
我使用的Spring安全与oAuth2,但我有一个问题,我没有找到任何答案,在许多项目的例子,你有2次配置(HttpSecurity超文本传输协议)。 例如在https://github.com/spring-projects/spring-security-oauth/blob/master/samples/oauth2/sparklr/src/main/java/org/springframe
我试图通过定义从WebSecurityConfigureAdapter扩展而来的配置类,为我的自定义安全配置(LDAP JWT)创建自己的spring启动程序。但是,当我使用此初学者启动应用程序时,我会得到: 我发现由于Spring Security性的这个问题,不再可能这样做了。Spring的WebSecurityConfiguration中有一个断言: 我解决了这个问题,在启动器中添加了以下内
我创建了一个授权服务,如下所示 使用此。 然后,在一个单独的spring boot项目中,我创建了一个资源服务器。 使用此。 现在,如果我使用授权服务检索到的适当令牌发送这样的请求,一切都很好。 但是,在向本地主机9090/登录发送请求时,我不想发送此令牌。 为此,我在我的资源服务器Spring启动应用程序中创建了这个类。 现在我不需要发送任何令牌即可向发送请求。 然而,我现在在使用有效令牌向ap
我正在尝试为我的项目设置多个WebsecurityConfigrerAdapter,其中Spring启动执行器API使用基本身份验证进行保护,所有其他endpoint使用JWtAuthentication进行身份验证。我只是无法使它一起工作,只有较低顺序的配置可以工作。我使用Spring Boot 2.1.5。释放 带有JWT身份验证程序的安全配置1 带有用户名/密码的基本身份验证配置 我已经尝试
仅仅存在一个空的就会破坏我应用程序的OAuth2。我得到 当我期待 为了让Oauth2正常工作,我必须对整个课程进行注释。即使只是注释方法也不起作用。为什么? 我学会了如何添加安全日志,但它没有打印出任何有用的信息。