PageController.adminLoginSSO
unknown
java
2 years ago
1.8 kB
4
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...