我计划使用外部身份提供程序(WSo2)或本地spring ouath令牌生成器来保护我的REST服务器。令牌生成模式(永恒/内部)将可配置。我采用下面列出的示例并修改了CORSFilter类以使用外部提供程序(WSO2)验证令牌。我不知道如何跳过本地令牌生成并访问我的资源服务器。我想授权和资源服务器需要是独立的模块来实现我所需要的。我对spring ouath来说是全新的,所以不确定这是不是正确的方法。我试图通过互联网找到更好的例子,但无法得到一个。任何指针/示例都会有所帮助。
网址(示例):http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/
public class CORSFilter extends OncePerRequestFilter {
private final Logger LOG = LoggerFactory.getLogger(CORSFilter.class);
@Override
protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws ServletException, IOException {
//Read the keygen mode if it is External validation do this else skip all this so that local token is generated.
LOG.info("###token is"+ req.getHeader("Authorization"));
String token = req.getHeader("Authorization");
TokenValidator obj = new TokenValidator(token);//This class validates the Access token with WSO2
boolean tokenStatus = obj.gettokenStatus();
if(tokenStatus){
res.setHeader("Access-Control-Allow-Headers", "*");
res.setHeader("Access-Control-Max-Age", "3600");
chain.doFilter(req, res);
}else{
LOG.info("token validation is not scuesfull");
throw new SecurityException();
}
}