Java RESTAPI、oAuth2、spring安全性和角色
在我的应用程序中,我实现了Java RESTAPI、oAuth2、spring安全性和角色,java,spring,rest,oauth-2.0,spring-security-oauth2,Java,Spring,Rest,Oauth 2.0,Spring Security Oauth2,在我的应用程序中,我实现了oauth2AuthorizationServer和ResourceServer。我的系统中的每个用户都有一组角色(权限) 我希望使用oauth2和基于用户角色的安全性来保护我的Spring MVC REST端点 是否可以对UserDetails.getAuthories()方法中定义的不同角色(权限)使用oAuth2身份验证/授权 我的配置: private final static class DBUserDetails extends User implement
oauth2
AuthorizationServer和ResourceServer。我的系统中的每个用户都有一组角色(权限)
我希望使用oauth2和基于用户角色的安全性来保护我的Spring MVC REST端点
是否可以对UserDetails.getAuthories()方法中定义的不同角色(权限)使用oAuth2身份验证/授权
我的配置:
private final static class DBUserDetails extends User implements UserDetails {
private static final long serialVersionUID = 1L;
private DBUserDetails(User user) {
super(user);
}
public Collection<? extends GrantedAuthority> getAuthorities() {
return AuthorityUtils.createAuthorityList("ROLE_USER");
}
public String getUsername() {
return getName();
}
public boolean isAccountNonExpired() {
return true;
}
public boolean isAccountNonLocked() {
return true;
}
public boolean isCredentialsNonExpired() {
return true;
}
public boolean isEnabled() {
return true;
}
}
我想保护具有权限的用户的/profile/*
路径。但是现在任何拥有accessToken的人都可以访问这个端点。我错在哪里?我想您可以在ResourceServerConfiguration中为我使用它,它的工作原理如下:
http
.requestMatchers().antMatchers("/oauth/api")
.and()
.authorizeRequests()
.antMatchers("/oauth/api").access("#oauth2.hasRole('ADMIN')")...
谢谢,我将在近几个小时内试一试!有没有机会通过注释而不是方法以同样的方式工作?@alexanoid说实话,我没有尝试。调查的要点很好这是行不通的。没有方法#oauth2.hasRole。正确的方法是hasRole:.antMatchers(“/oauth/api”).access(“hasRole('ADMIN')”)
http
.requestMatchers().antMatchers("/oauth/api")
.and()
.authorizeRequests()
.antMatchers("/oauth/api").access("#oauth2.hasRole('ADMIN')")...