spring cloud gateway security oauth2


申请token

客户端认证

GenericFilterBean.java 过滤链
ClientCredentialsTokenEndpointFilter.java
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
throws AuthenticationException, IOException, ServletException {

if (allowOnlyPost && !"POST".equalsIgnoreCase(request.getMethod())) {
throw new HttpRequestMethodNotSupportedException(request.getMethod(), new String[] { "POST" });
}

String clientId = request.getParameter("client_id");
String clientSecret = request.getParameter("client_secret");

// If the request is already authenticated we can assume that this
// filter is not needed
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.isAuthenticated()) {
return authentication;
}

if (clientId == null) {
throw new BadCredentialsException("No client credentials presented");
}

if (clientSecret == null) {
clientSecret = "";
}

clientId = clientId.trim();
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(clientId,
clientSecret);

return this.getAuthenticationManager().authenticate(authRequest);

}

生成token

验证token

WebFilter.java 调用链
AuthenticationWebFilter.java
ReactiveOAuth2ResourceServerJwkConfiguration.java 配置信息
DefaultJWTProcessor.java
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM