1. 程式人生 > >springMvc單點登入對接

springMvc單點登入對接

    @RequestMapping(value = "/testLogin")
   public String ooooAuthentication(@RequestParam(value = "loginName", required = true) String loginName,
                            HttpServletResponse response, HttpServletRequest request) {

      UsernamePasswordAuthenticationToken authRequestToken = new UsernamePasswordAuthenticationToken(loginName, "*****");
      SecuredUser loadUserByUsername = (SecuredUser) userDetailsService.loadUserByUsername(loginName);
      String roleShortName = loadUserByUsername.getUser().getRole().getShortName();
      loadUserByUsername.getUser().setUserLanguage("CN");
      loadUserByUsername.getUser().setTimeZone("Asia/Shanghai");
      List<GrantedAuthority> AUTHORITIES = new ArrayList<GrantedAuthority>();
      AUTHORITIES.add(new SimpleGrantedAuthority(roleShortName)); // 設定許可權,A,U,S 應該是loadUserByUsername查處後比對下
      UsernamePasswordAuthenticationToken authRequestTokennew =  new UsernamePasswordAuthenticationToken(loadUserByUsername, authRequestToken.getCredentials(), AUTHORITIES);
      AuthenticationDetailsSource<HttpServletRequest, ?> authenticationDetailsSource = new WebAuthenticationDetailsSource();
      authRequestTokennew.setDetails(authenticationDetailsSource.buildDetails(request));
      SecurityContextImpl context = new SecurityContextImpl();
      context.setAuthentication(authRequestTokennew);
      SecurityContextHolder.setContext(context);

//    request.getCookies();
//    authRequestTokennew.getDetails();

      return "redirect:/home";
      //return home(user, null, null, model, response, request);
   }