gateway代码再引入CsrfTokenRepository
来源:11-14 Feign实现Token传递

慕仙4096060
2020-12-14
在老师的gateway的代码上引入
org.springframework.security
spring-security-web
加了一个 CsrfAjaxController 类
@RestController
@RequestMapping("/rpa/api/csrf")
//@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CsrfAjaxController {
Logger logger = LoggerFactory.getLogger(CsrfAjaxController.class);
@Autowired
private CsrfTokenRepository csrfTokenRepository;
@RequestMapping("/ajax")
public String getCsrfToken(HttpServletRequest request, HttpServletResponse response) {
CsrfToken csrfToken = csrfTokenRepository.loadToken(request);
if (csrfToken == null) {
csrfToken = csrfTokenRepository.generateToken(request);
csrfTokenRepository.saveToken(csrfToken, request, response);
}
logger.info(String.format("csrf ajax,session:%s,csrf:%s", request.getSession().getId(), csrfToken));
JSONObject jsonObject=new JSONObject();
jsonObject.put("requestId", UUID.randomUUID().toString());
jsonObject.put("code", "0");
jsonObject.put("msg" ,"调用成功");
jsonObject.put("msgCode","result.success");
jsonObject.put("data",csrfToken);
return jsonObject.toString();
}
启动报如下错误

写回答
1回答
-
gateway不能用spring security,要用Spring Security Webflux
可以先检查下依赖是否正确。
112020-12-17
相似问题