我有一个具有Spring安全性和Oauth2的项目。
在资源服务器上,我具有以下配置:
$ javac –classpath C:\dependency\framework.jar MyApp.Java
$ java –classpath C:\dependency\framework.jar MyApp
我有以下提取器:
@Configuration
public class SecurityConfiguration extends ResourceServerConfigurerAdapter {
@Override
public void configure(final HttpSecurity http) throws Exception {
http.antMatcher("/**")
.authorizeRequests().antMatchers("/info", "/health", "/h2-console/**").permitAll()
.anyRequest().authenticated()
.and().headers().frameOptions().disable();
}
}
我设置了user-info-uri:http://localhost:8081/uaa/v1/me
问题在于它在运行时没有命中我的提取器方法,因此什么也没发生。据我所知,我只需要使用@Component和Spring boot对其进行注释,并将其自动使用。
更新: 解决方案已建立。 我还必须将此添加到我的配置中:
@Component
public class InsurancePrincipalExtractor implements PrincipalExtractor {
@Override
public Object extractPrincipal(Map<String, Object> map) {
return map.get("username");
}
}
@Component
public class InsuranceAuthoritiesExtractor implements AuthoritiesExtractor {
@Override
public List<GrantedAuthority> extractAuthorities(Map<String, Object> map) {
//Logic
}