【发布时间】:2019-11-04 06:15:01
【问题描述】:
我使用 java (spring boot) 和 angular 生成了一个 jhipster 项目,我想将 angular 用于管理模块,它管理站点的所有内容并在前端使用 angular,在后端使用 java。主页使用rest模板显示内容,我需要在管理模块和主页之间使用相同的身份验证。当我登录管理模块然后返回主页时,登录用户的名称将显示在主页中,但我无法在主页中获得登录用户的身份验证
- 在 rest api 中获取登录用户时,我将使用 SecurityUtils.isAuthenticated() 进行如下检查
@Override
public ResponseEntity<?> getSalesProduct() {
if (SecurityUtils.isAuthenticated()) {
User user = userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin().get()).get();
}
- 在 rest 模板中我也使用 SecurityUtils.isAuthenticated() 来检查,但结果总是假的
@GetMapping("/profile")
public ModelAndView profile() {
if (SecurityUtils.isAuthenticated()) {
User user = userRepository.findOneByLogin(SecurityUtils.getCurrentUserLogin().get());
}
请给我一些想法如何在主页上获得身份验证。
【问题讨论】:
-
感谢@GaëlMarziou 我编辑了我的问题,我使用了为主页生成的 Jhipster 的 SecurityUtils
-
我不确定您所说的“主页使用rest模板显示内容”是什么意思。从您使用 ModelAndView 提取的代码中,我猜您使用的是 Spring MVC 视图模板。您使用哪个模板引擎?百里香,Freemarker?
-
感谢@GaëlMarziou,我使用 Thymeleaf。我必须在此之前和之后获取登录用户,我会将数据填充到 Thymeleaf 但我无法获取用户登录信息,因为 SecurityUtils.isAuthenticated() 总是错误的
-
好的,所以有两种不同的前端方法。您在 JHipster 中选择了哪种身份验证类型:JWT、会话、...?
-
感谢@GaëlMarziou,我的项目使用 JWT 身份验证
标签: jhipster