PageController.adminLoginSSO
unknown
java
3 years ago
1.8 kB
5
Indexable
@GetMapping("/validate-ticket")
public ModelAndView adminLoginSSO(
@RequestParam(value = "ticket", required = false) String ticket,
HttpServletRequest request
) {
ServiceResponse serviceResponse = this.webClient.get().uri(
String.format(
Setting.SERVER_VALIDATE_TICKET,
ticket,
Setting.CLIENT_LOGIN
)
).retrieve().bodyToMono(ServiceResponse.class).block();
System.out.println(String.format(
Setting.SERVER_VALIDATE_TICKET,
ticket,
Setting.CLIENT_LOGIN
));
Attributes attributes = serviceResponse.getAuthenticationSuccess().getAttributes();
String username = serviceResponse.getAuthenticationSuccess().getUser();
UserModel user = userService.getUserByUsername(username);
if (user == null) {
user = new UserModel();
user.setEmail(username + "@ui.ac.id");
user.setNama(attributes.getNama());
user.setPassword("belajarbelajar");
user.setUsername(username);
user.setIsSso(true);
user.setRole(roleService.getById(Long.valueOf(1)));
userService.addUser(user);
}
Authentication authentication = new UsernamePasswordAuthenticationToken(username, "belajarbelajar");
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
HttpSession httpSession = request.getSession(true);
httpSession.setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, securityContext);
return new ModelAndView("redirect:/");
}Editor is loading...