[英]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.