java类org.springframework.security.authentication.UsernamePasswordAuthenticationToken的实例源码

JwtTokenUtil.java 文件源码 项目:MicroServiceDemo 阅读 26 收藏 0 点赞 0 评论 0
public Authentication getAuthentication(HttpServletRequest request) {
    String token = request.getHeader(HEADER_STRING);
    if (token != null) {
        // parse the token.
        String user = getUsername(token);

        String roles = getBody(token).get("roles", String.class);
        List<GrantedAuthority> grantedAuths =
                AuthorityUtils.commaSeparatedStringToAuthorityList(roles);

        return user != null ?
                new UsernamePasswordAuthenticationToken(user, null,
                        grantedAuths) :
                null;
    }
    return null;
}
CalendarUserAuthenticationProvider.java 文件源码 项目:Spring-Security-Third-Edition 阅读 35 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
    String email = token.getName();
    CalendarUser user = email == null ? null : calendarService.findUserByEmail(email);
    if(user == null) {
        throw new UsernameNotFoundException("Invalid username/password");
    }
    // Database Password already encrypted:
    String password = user.getPassword();

    boolean passwordsMatch = passwordEncoder.matches(token.getCredentials().toString(), password);

    if(!passwordsMatch) {
        throw new BadCredentialsException("Invalid username/password");
    }
    Collection<? extends GrantedAuthority> authorities = CalendarUserAuthorityUtils.createAuthorities(user);
    UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user, password, authorities);
    return usernamePasswordAuthenticationToken;
}
UserJWTController.java 文件源码 项目:devoxxus-jhipster-microservices-demo 阅读 33 收藏 0 点赞 0 评论 0
@PostMapping("/authenticate")
@Timed
public ResponseEntity authorize(@Valid @RequestBody LoginVM loginVM, HttpServletResponse response) {

    UsernamePasswordAuthenticationToken authenticationToken =
        new UsernamePasswordAuthenticationToken(loginVM.getUsername(), loginVM.getPassword());

    try {
        Authentication authentication = this.authenticationManager.authenticate(authenticationToken);
        SecurityContextHolder.getContext().setAuthentication(authentication);
        boolean rememberMe = (loginVM.isRememberMe() == null) ? false : loginVM.isRememberMe();
        String jwt = tokenProvider.createToken(authentication, rememberMe);
        response.addHeader(JWTConfigurer.AUTHORIZATION_HEADER, "Bearer " + jwt);
        return ResponseEntity.ok(new JWTToken(jwt));
    } catch (AuthenticationException ae) {
        log.trace("Authentication exception trace: {}", ae);
        return new ResponseEntity<>(Collections.singletonMap("AuthenticationException",
            ae.getLocalizedMessage()), HttpStatus.UNAUTHORIZED);
    }
}
UserJWTController.java 文件源码 项目:klask-io 阅读 31 收藏 0 点赞 0 评论 0
@RequestMapping(value = "/authenticate", method = RequestMethod.POST)
@Timed
public ResponseEntity<?> authorize(@Valid @RequestBody LoginDTO loginDTO, HttpServletResponse response) {

    UsernamePasswordAuthenticationToken authenticationToken =
        new UsernamePasswordAuthenticationToken(loginDTO.getUsername(), loginDTO.getPassword());

    try {
        Authentication authentication = this.authenticationManager.authenticate(authenticationToken);
        SecurityContextHolder.getContext().setAuthentication(authentication);
        boolean rememberMe = (loginDTO.isRememberMe() == null) ? false : loginDTO.isRememberMe();
        String jwt = tokenProvider.createToken(authentication, rememberMe);
        response.addHeader(JWTConfigurer.AUTHORIZATION_HEADER, "Bearer " + jwt);
        return ResponseEntity.ok(new JWTToken(jwt));
    } catch (AuthenticationException exception) {
        return new ResponseEntity<>(Collections.singletonMap("AuthenticationException",exception.getLocalizedMessage()), HttpStatus.UNAUTHORIZED);
    }
}
DigestPasswordValidationCallbackHandler.java 文件源码 项目:bdf2 阅读 34 收藏 0 点赞 0 评论 0
@Override
protected void handleUsernameTokenPrincipal(UsernameTokenPrincipalCallback callback) throws IOException,
        UnsupportedCallbackException {
    UserDetails user = loadUserDetails(callback.getPrincipal().getName());
    WSUsernameTokenPrincipal principal = callback.getPrincipal();
    UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(
            principal, principal.getPassword(), user.getAuthorities());
    if (logger.isDebugEnabled()) {
        logger.debug("Authentication success: " + authRequest.toString());
    }
    SecurityContextHolder.getContext().setAuthentication(authRequest);
    if (user instanceof IUser) {
        HttpSession session=ContextHolder.getHttpSession();
        session.setAttribute(ContextHolder.LOGIN_USER_SESSION_KEY, user);
        session.setAttribute(ContextHolder.USER_LOGIN_WAY_KEY,IWebservice.WS_LOGIN_WAY);
    }
}
MyUserController.java 文件源码 项目:AngularAndSpring 阅读 34 收藏 0 点赞 0 评论 0
private MyUser loginHelp(MyUser user, String passwd, HttpSession session) {
    if (user.getUserId() != null) {
        String encryptedPassword;
        try {
            encryptedPassword = this.passwordEncryption.getEncryptedPassword(passwd, user.getSalt());
        } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
            return new MyUser();
        }
        if (user.getPassword().equals(encryptedPassword)) {             
            if(session != null) {   
                Authentication auth = 
                          new UsernamePasswordAuthenticationToken(user.getUserId(), user.getPassword(), user.getAuthorities());
                SecurityContextHolder.getContext().setAuthentication(auth);
                session.setAttribute(WebUtils.SECURITYCONTEXT, SecurityContextHolder.getContext());
            }
            user.setPassword("XXX");
            return user;
        }
    }
    session.invalidate();
    return new MyUser();
}
CalendarUserAuthenticationProvider.java 文件源码 项目:Spring-Security-Third-Edition 阅读 29 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
    String email = token.getName();
    CalendarUser user = email == null ? null : calendarService.findUserByEmail(email);
    if(user == null) {
        throw new UsernameNotFoundException("Invalid username/password");
    }
    // Database Password already encrypted:
    String password = user.getPassword();

    boolean passwordsMatch = passwordEncoder.matches(token.getCredentials().toString(), password);

    if(!passwordsMatch) {
        throw new BadCredentialsException("Invalid username/password");
    }
    Collection<? extends GrantedAuthority> authorities = CalendarUserAuthorityUtils.createAuthorities(user);
    UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user, password, authorities);
    return usernamePasswordAuthenticationToken;
}
JJWTTokenProvider.java 文件源码 项目:jwt-security-spring-boot-starter 阅读 32 收藏 0 点赞 0 评论 0
@Override
public Authentication getAuthentication(String token) {
  Claims claims = Jwts.parser()
    .setSigningKey(jwtProperties.getToken().getSecret())
    .parseClaimsJws(token)
    .getBody();

  Collection<? extends GrantedAuthority> authorities =
    Try.of(() ->
      Arrays.stream(claims.get(jwtProperties.getToken().getPayload().getAuthoritiesKey()).toString().split(","))
        .map(SimpleGrantedAuthority::new)
        .collect(Collectors.toList())
    ).recover(ex ->
      Collections.emptyList()
    ).get();

  User principal = new User(claims.getSubject(), "", authorities);

  return new UsernamePasswordAuthenticationToken(principal, "", authorities);
}
AjaxLoginProcessingFilter.java 文件源码 项目:infotaf 阅读 45 收藏 0 点赞 0 评论 0
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
        throws AuthenticationException, IOException, ServletException {
    if (!HttpMethod.POST.name().equals(request.getMethod()) || !WebUtil.isAjax(request)) {
        if(logger.isDebugEnabled()) {
            logger.debug("Authentication method not supported. Request method: " + request.getMethod());
        }
        throw new AuthMethodNotSupportedException("Authentication method not supported");
    }

    LoginRequest loginRequest = objectMapper.readValue(request.getReader(), LoginRequest.class);

    if (StringUtils.isBlank(loginRequest.getUsername()) || StringUtils.isBlank(loginRequest.getPassword())) {
        throw new AuthenticationServiceException("Username or Password not provided");
    }

    UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(loginRequest.getUsername(), loginRequest.getPassword());

    return this.getAuthenticationManager().authenticate(token);
}
TestCacheProductService.java 文件源码 项目:dhus-core 阅读 31 收藏 0 点赞 0 评论 0
private void authenticate ()
{
   String name = "userTest";
   Set<GrantedAuthority> roles = new HashSet<> ();
   roles.add (new SimpleGrantedAuthority (Role.DOWNLOAD.getAuthority ()));
   roles.add (new SimpleGrantedAuthority (Role.SEARCH.getAuthority ()));
   roles.add (
         new SimpleGrantedAuthority (Role.DATA_MANAGER.getAuthority ()));

   SandBoxUser user = new SandBoxUser (name, name, true, 0, roles);
   Authentication auth = new UsernamePasswordAuthenticationToken (
         user, user.getPassword (), roles);
   SecurityContextHolder.getContext ().setAuthentication (auth);

   logger.info ("userTest roles: " + auth.getAuthorities ());
}
UserController.java 文件源码 项目:web-framework-for-java 阅读 38 收藏 0 点赞 0 评论 0
@ApiOperation(value = "Login")
@RequestMapping(value = "/login", method = RequestMethod.POST)
public boolean login(@RequestBody User user, HttpServletRequest request) {
    User u = this.userService.login(user.getUsername(), user.getPassword());
    if (u != null) {
        UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(
            user.getUsername(), user.getPassword());

        // Authenticate the user
        Authentication authentication = authenticationManager.authenticate(authRequest);
        SecurityContext securityContext = SecurityContextHolder.getContext();
        securityContext.setAuthentication(authentication);

        // Create a new session and add the security context.
        HttpSession session = request.getSession(true);
        session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
        return true;
    }
    return false;
}
JwtAuthorizationFilterTest.java 文件源码 项目:qpp-conversion-tool 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void testDoFilterInternal() throws IOException, ServletException {
    JwtPayloadHelper payload = new JwtPayloadHelper()
            .withName(JwtAuthorizationFilter.ORG_NAME)
            .withOrgType(ORG_TYPE);

    request.addHeader("Authorization", JwtTestHelper.createJwt(payload));
    JwtAuthorizationFilter testJwtAuthFilter = new JwtAuthorizationFilter(authenticationManager);

    PowerMockito.mockStatic(SecurityContextHolder.class);
    SecurityContext mockSecurityContext = PowerMockito.mock(SecurityContext.class);

    PowerMockito.when(SecurityContextHolder.getContext()).thenReturn(mockSecurityContext);

    testJwtAuthFilter.doFilterInternal(request, response, filterChain);

    verify(filterChain, times(1)).doFilter(any(MockHttpServletRequest.class), any(MockHttpServletResponse.class));
    verify(SecurityContextHolder.getContext(), times(1)).setAuthentication(any(UsernamePasswordAuthenticationToken.class));
}
JwtAuthorizationFilterTest.java 文件源码 项目:qpp-conversion-tool 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testDoFilterInternalWithInvalidOrgName() throws IOException, ServletException {
    JwtPayloadHelper payload = new JwtPayloadHelper()
            .withName("invalid-name")
            .withOrgType(ORG_TYPE);

    request.addHeader("Authorization", JwtTestHelper.createJwt(payload));
    JwtAuthorizationFilter testJwtAuthFilter = new JwtAuthorizationFilter(authenticationManager);

    PowerMockito.mockStatic(SecurityContextHolder.class);
    SecurityContext mockSecurityContext = PowerMockito.mock(SecurityContext.class);

    PowerMockito.when(SecurityContextHolder.getContext()).thenReturn(mockSecurityContext);

    testJwtAuthFilter.doFilterInternal(request, response, filterChain);

    verify(filterChain, times(1)).doFilter(any(MockHttpServletRequest.class), any(MockHttpServletResponse.class));
    verify(SecurityContextHolder.getContext(), times(0)).setAuthentication(any(UsernamePasswordAuthenticationToken.class));
}
JWTLoginFilter.java 文件源码 项目:attendance-manager-back 阅读 38 收藏 0 点赞 0 评论 0
@Override
public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse res) throws AuthenticationException, IOException, ServletException {
    User creds = new ObjectMapper()
            .readValue(req.getInputStream(), User.class);

    List<Role> authorities = new ArrayList<>();
    authorities.add(Role.ROLE_MANAGER);
    authorities.add(Role.ROLE_EMPLOYE);
    authorities.add(Role.ROLE_ADMIN);

    return getAuthenticationManager().authenticate(
            new UsernamePasswordAuthenticationToken(
                    creds.getMatricule(),
                    creds.getPassword(),
                    Collections.emptyList()
                    )
            );
}
CalendarUserAuthenticationProvider.java 文件源码 项目:Spring-Security-Third-Edition 阅读 31 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
    String email = token.getName();
    CalendarUser user = email == null ? null : calendarService.findUserByEmail(email);
    if(user == null) {
        throw new UsernameNotFoundException("Invalid username/password");
    }
    // Database Password already encrypted:
    String password = user.getPassword();

    boolean passwordsMatch = passwordEncoder.matches(token.getCredentials().toString(), password);

    if(!passwordsMatch) {
        throw new BadCredentialsException("Invalid username/password");
    }
    Collection<? extends GrantedAuthority> authorities = CalendarUserAuthorityUtils.createAuthorities(user);
    UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user, password, authorities);
    return usernamePasswordAuthenticationToken;
}
UserService.java 文件源码 项目:spring-boot-jwt 阅读 33 收藏 0 点赞 0 评论 0
public String signin(String username, String password) {
  try {
    authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
    return jwtTokenProvider.createToken(username, userRepository.findByUsername(username).getRoles());
  } catch (AuthenticationException e) {
    throw new CustomException("Invalid username/password supplied", HttpStatus.UNPROCESSABLE_ENTITY);
  }
}
AppAuthenticationFilter.java 文件源码 项目:Spring-5.0-Cookbook 阅读 24 收藏 0 点赞 0 评论 0
@Override
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain,
        Authentication authResult) throws IOException, ServletException {

    System.out.println("AUTH FILTER");


    Collection<? extends GrantedAuthority> authorities = authResult.getAuthorities();
    List<String> roles = new ArrayList<String>();
    for (GrantedAuthority a : authorities) {
        roles.add(a.getAuthority());
    }
    System.out.println(roles);

    String name = obtainPassword(request);
       String password = obtainUsername(request);


    UsernamePasswordAuthenticationToken userDetails = new UsernamePasswordAuthenticationToken(name, password, authorities);
    setDetails(request, userDetails);   
    chain.doFilter(request, response);
}
CustomSignInAdapter.java 文件源码 项目:Code4Health-Platform 阅读 39 收藏 0 点赞 0 评论 0
@Override
public String signIn(String userId, Connection<?> connection, NativeWebRequest request){
    try {
        UserDetails user = userDetailsService.loadUserByUsername(userId);
        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
            user,
            null,
            user.getAuthorities());

        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
        String jwt = tokenProvider.createToken(authenticationToken, false);
        ServletWebRequest servletWebRequest = (ServletWebRequest) request;
        servletWebRequest.getResponse().addCookie(getSocialAuthenticationCookie(jwt));
    } catch (AuthenticationException exception) {
        log.error("Social authentication error");
    }
    return jHipsterProperties.getSocial().getRedirectAfterSignIn();
}
JwtAuthenticationTokenFilter.java 文件源码 项目:ponto-inteligente-api 阅读 34 收藏 0 点赞 0 评论 0
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
    String token = request.getHeader(AUTH_HEADER);
    if (token != null && token.startsWith(BEARER_PREFIX)) {
        token = token.substring(7);
    }
    String username = jwtTokenUtil.getUsernameFromToken(token);

    if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) {

        UserDetails userDetails = this.userDetailsService.loadUserByUsername(username);

        if (jwtTokenUtil.tokenValido(token)) {
            UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
            authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
            SecurityContextHolder.getContext().setAuthentication(authentication);
        }
    }

    chain.doFilter(request, response);
}
MeasureUserActivityFilterTestBase.java 文件源码 项目:tqdev-metrics 阅读 35 收藏 0 点赞 0 评论 0
/**
 * Simulate a request with authenticated user with specified username for a
 * specified duration in nanoseconds.
 *
 * @param username
 *            the username
 * @param durationInNanoseconds
 *            the duration in nanoseconds
 */
protected void request(String username, long durationInNanoseconds) {
    long now = 1510373758000000000L;
    when(registry.getNanos()).thenReturn(now, now + durationInNanoseconds);

    if (username != null) {
        User user = new User(username, "", new ArrayList<GrantedAuthority>());
        Authentication auth = new UsernamePasswordAuthenticationToken(user, null);
        SecurityContextHolder.getContext().setAuthentication(auth);
    }

    try {
        filter.doFilterInternal(mock(HttpServletRequest.class), mock(HttpServletResponse.class),
                mock(FilterChain.class));
    } catch (ServletException | IOException e) {
        e.printStackTrace();
    }
}
UserServiceImpl.java 文件源码 项目:nixmash-blog 阅读 33 收藏 0 点赞 0 评论 0
@Transactional
@Override
public User updateHasAvatar(Long userId, boolean hasAvatar) {
    User user = userRepository.findById(userId);
    user.setHasAvatar(hasAvatar);

    CurrentUser currentUser = new CurrentUser(user);

    Authentication authentication =
            new UsernamePasswordAuthenticationToken(
                    currentUser,
                    user.getPassword(),
                    user.getAuthorities());
    SecurityContextHolder.getContext().setAuthentication(authentication);

    return user;
}
AuthController.java 文件源码 项目:springboot-rest-api-skeleton 阅读 39 收藏 0 点赞 0 评论 0
@RequestMapping(value = "${jwt.route.authentication.path}", method = RequestMethod.POST)
public ResponseEntity<?> createAuthenticationToken(@RequestBody JwtAuthenticationRequest authenticationRequest, Device device)
        throws AuthenticationException {

    // Perform the security
    final Authentication authentication = authenticationManager.authenticate(
            new UsernamePasswordAuthenticationToken(
                    authenticationRequest.getUsername(),
                    authenticationRequest.getPassword()
            )
    );
    SecurityContextHolder.getContext().setAuthentication(authentication);

    // Reload password post-security so we can generate token
    final UserDetails userDetails = userDetailsService.loadUserByUsername(authenticationRequest.getUsername());
    final String token = jwtTokenUtil.generateToken(userDetails, device);

    // Return the token
    return ResponseEntity.ok(new JwtAuthenticationResponse(token));
}
CalendarUserAuthenticationProvider.java 文件源码 项目:Spring-Security-Third-Edition 阅读 33 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
    String email = token.getName();
    CalendarUser user = email == null ? null : calendarService.findUserByEmail(email);
    if(user == null) {
        throw new UsernameNotFoundException("Invalid username/password");
    }
    // Database Password already encrypted:
    String password = user.getPassword();

    boolean passwordsMatch = passwordEncoder.matches(token.getCredentials().toString(), password);

    if(!passwordsMatch) {
        throw new BadCredentialsException("Invalid username/password");
    }
    Collection<? extends GrantedAuthority> authorities = CalendarUserAuthorityUtils.createAuthorities(user);
    UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user, password, authorities);
    return usernamePasswordAuthenticationToken;
}
CustomAuthenticationProvider.java 文件源码 项目:Building-Web-Apps-with-Spring-5-and-Angular 阅读 22 收藏 0 点赞 0 评论 0
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    final String username = authentication.getName();
    final String password = authentication.getCredentials().toString();

    User user = null;
    try {
        user = userService.doesUserExist(username);
    } catch (UserNotFoundException e) {
    }

    if (user == null || !user.getEmail().equalsIgnoreCase(username)) {
        throw new BadCredentialsException("Username not found.");
    }

    if (!password.equals(user.getPassword())) {
        throw new BadCredentialsException("Wrong password.");
    }
    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
    if(user.getRole() == 1) {
        authorities.add(new SimpleGrantedAuthority("ROLE_DOCTOR"));
    } else {
        authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
    }       
       final UserDetails principal = new org.springframework.security.core.userdetails.User(username, password, authorities);        
    return new UsernamePasswordAuthenticationToken(principal, password, authorities);
}
JwtService.java 文件源码 项目:hauth-java 阅读 39 收藏 0 点赞 0 评论 0
public static Authentication getAuthentication(HttpServletRequest request) {

        // 从Header中拿到token
        String token = request.getHeader(HEADER_STRING);
        if (token == null) {
            token = getTokenFromCookis(request);
        }

        if (token != null && !token.isEmpty()) {
            // 解析 Token
            Claims claims = Jwts.parser().setSigningKey(SECRET)
                    .parseClaimsJws(token).getBody();

            // 获取用户名
            String user = claims.get("UserId").toString();

            // 获取权限(角色)
            List<GrantedAuthority> authorities = AuthorityUtils.commaSeparatedStringToAuthorityList((String) claims.get("authorities"));

            // 返回验证令牌
            return user != null ? new UsernamePasswordAuthenticationToken(user, null, authorities) : null;
        }
        return null;
    }
JWTLoginFilter.java 文件源码 项目:hauth-java 阅读 29 收藏 0 点赞 0 评论 0
@Override
public Authentication attemptAuthentication(
        HttpServletRequest req, HttpServletResponse res)
        throws AuthenticationException, IOException, ServletException {

    String username = req.getParameter("username");
    String password = req.getParameter("password");
    if (password != null) {
        password = aesEncrypt(password);
    }

    // 返回一个验证令牌
    return getAuthenticationManager().authenticate(
            new UsernamePasswordAuthenticationToken(
                    username,
                    password
            )
    );
}
UserJWTController.java 文件源码 项目:Microservices-with-JHipster-and-Spring-Boot 阅读 36 收藏 0 点赞 0 评论 0
@PostMapping("/authenticate")
@Timed
public ResponseEntity<?> authorize(@Valid @RequestBody LoginDTO loginDTO, HttpServletResponse response) {

    UsernamePasswordAuthenticationToken authenticationToken =
        new UsernamePasswordAuthenticationToken(loginDTO.getUsername(), loginDTO.getPassword());

    try {
        Authentication authentication = this.authenticationManager.authenticate(authenticationToken);
        SecurityContextHolder.getContext().setAuthentication(authentication);
        boolean rememberMe = (loginDTO.isRememberMe() == null) ? false : loginDTO.isRememberMe();
        String jwt = tokenProvider.createToken(authentication, rememberMe);
        response.addHeader(JWTConfigurer.AUTHORIZATION_HEADER, "Bearer " + jwt);
        return ResponseEntity.ok(new JWTToken(jwt));
    } catch (AuthenticationException exception) {
        return new ResponseEntity<>(Collections.singletonMap("AuthenticationException",exception.getLocalizedMessage()), HttpStatus.UNAUTHORIZED);
    }
}
MyAuthenticationProvider.java 文件源码 项目:AngularAndSpring 阅读 32 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    String name = authentication.getName();
    String password = authentication.getCredentials().toString();       
    Query query = new Query();
    query.addCriteria(Criteria.where("userId").is(name));
    MyUser user = operations.findOne(query, MyUser.class).block();
    String encryptedPw = null;
    try {
        encryptedPw = this.passwordEncryption.getEncryptedPassword(password, user.getSalt());
    } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
        log.error("Pw decrytion error: ",e);
    }
    if(encryptedPw == null || !encryptedPw.equals(user.getPassword())) {
        throw new AuthenticationCredentialsNotFoundException("User: "+name+" not found.");
    }
    log.info("User: "+name+" logged in.");
    return new UsernamePasswordAuthenticationToken(
            name, password, user.getAuthorities());
}
CalendarUserAuthenticationProvider.java 文件源码 项目:Spring-Security-Third-Edition 阅读 32 收藏 0 点赞 0 评论 0
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken) authentication;
    String email = token.getName();
    CalendarUser user = email == null ? null : calendarService.findUserByEmail(email);
    if(user == null) {
        throw new UsernameNotFoundException("Invalid username/password");
    }
    // Database Password already encrypted:
    String password = user.getPassword();

    boolean passwordsMatch = passwordEncoder.matches(token.getCredentials().toString(), password);

    if(!passwordsMatch) {
        throw new BadCredentialsException("Invalid username/password");
    }
    Collection<? extends GrantedAuthority> authorities = CalendarUserAuthorityUtils.createAuthorities(user);
    UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(user, password, authorities);
    return usernamePasswordAuthenticationToken;
}
_AuthenticationRestController.java 文件源码 项目:generator-spring-rest-jwt 阅读 29 收藏 0 点赞 0 评论 0
@RequestMapping(value = "${jwt.route.authentication.path}", method = RequestMethod.POST)
public ResponseEntity<?> createAuthenticationToken(@RequestBody JwtAuthenticationRequest authenticationRequest, Device device) throws AuthenticationException {

    // Perform the security
    final Authentication authentication = authenticationManager.authenticate(
            new UsernamePasswordAuthenticationToken(
                    authenticationRequest.getUsername(),
                    authenticationRequest.getPassword()
            )
    );
    SecurityContextHolder.getContext().setAuthentication(authentication);

    // Reload password post-security so we can generate token
    final UserDetails userDetails = userDetailsService.loadUserByUsername(authenticationRequest.getUsername());
    final String token = jwtTokenUtil.generateToken(userDetails, device);

    // Return the token
    return ResponseEntity.ok(new JwtAuthenticationResponse(token));
}


问题


面经


文章

微信
公众号

扫码关注公众号