繁体   English   中英

如何在 Spring Boot 中使用来自 UI 服务的登录服务?

[英]How to consume Login Service from UI Service in Spring Boot?

我有 2 个微服务,1 个具有所有 UI,1 个具有与 MySQL 数据库连接的登录解决方案。

我尝试过在相同的服务中工作的登录和 UI。

@RequestMapping("/accounts/login") //login 
public String login(HttpServletRequest request) {
    request.setAttribute("mode", "MODE_LOGIN");
    return "login";
}

@RequestMapping ("/login-user") // checking user details in database
public String loginUser(@ModelAttribute User user, HttpServletRequest request) {
    //ModelAndView model = new ModelAndView();
    if(userService.findByEmailAndPassword(user.getEmail(), user.getPassword())!=null) {
        return user.getFirstname();

    }
    else {
        request.setAttribute("error", "Invalid username and password!");
        request.setAttribute("mode", "MODE_LOGIN");
        return "login";
    }
}

这是我的登录代码,在 JSP 中我已经把

 <c:choose>
    <c:when test="${mode=='MODE_HOME' }"> //some code after this
  <c:when test="${mode=='MODE_LOGIN' }">    
   <form action="/login-user" method="POST"> //form after this

以上仅在 1 个服务中完成,但现在我希望 UI 应该分开,并且该 UI 应该从那里使用此登录解决方案。

我的理解是:我在 UI 微服务和控制器中创建了相同的 POJO 我试图以下面给定的方式使用登录服务

@RequestMapping("validate")
private String login1()
{
    final String uri = "http://localhost:8091/accounts/login";

    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.getForObject(uri, String.class);

    return result;
}

我很困惑我将如何调用 @RequestMapping("/login-user") 在实际验证发生的地方。

我是这个架构的新手。 任何其他出路。

您应该只从您的 html 页面调用 @RequestMapping("/login-user") ,并在内部使用 rest 模板调用另一个微服务并获取验证错误消息,然后相应地重定向或显示响应消息。

这应该写在登录用户映射端,这样你就可以在那里得到错误。 restTemplate = 新的 RestTemplate(); String result = restTemplate.getForObject(uri, String.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM