[英]JWT enabled Spring Security configuration to permit all requests to Swagger UI
我有以下 JWT 配置,但是我想允許對我的 swagger ui 的所有請求我嘗試使用 permitAll() 添加 antMatcher,但沒有成功。
有人可以幫我嗎?
@EnableWebSecurity
public class JwtAuthConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.oauth2ResourceServer()
.jwt()
.jwtAuthenticationConverter(getJwtAuthenticationConverter());
}
private Converter<Jwt, AbstractAuthenticationToken> getJwtAuthenticationConverter() {
JwtAuthenticationConverter converter = new JwtAuthenticationConverter();
converter.setJwtGrantedAuthoritiesConverter(jwt -> {
Map<String, Object> claims = jwt.getClaims();
String userType = (String) claims.get("custom:userType");
Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
if(!StringUtils.isEmpty(userType))
grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_" + userType));
return grantedAuthorities;
});
return converter;
}
}
我也定義了這個 REST 前綴:
server:
port: 5000
servlet:
context-path: /api/v1
我猜你需要這樣的東西:
http.authorizeRequests()
.antMatchers("/swagger/**").permitAll()
...
看起來您仍然需要確保使用 oauth 過濾器對其他請求進行身份驗證。 看看這里的 .authenticated() 示例: Oauth 過濾器 Spring
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.