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();

}
 启动报如下错误
    ![图片描述](http://img.mukewang.com/szimg/5fd70f1509848f1e11630811.jpg)
写回答

1回答

大目

2020-12-16

gateway不能用spring security,要用Spring Security Webflux

可以先检查下依赖是否正确。

1
1
慕仙4096060
非常感谢!
2020-12-17
共1条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3085 学习 · 1324 问题

查看课程