Search in sources :

Example 1 with UserDetailsImpl

use of pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl in project Flare-event-calendar by PollubCafe.

the class SecurityServiceImpl method getAuthDataForLoggedUser.

@Override
public AuthUserResponseDTO getAuthDataForLoggedUser() {
    UserDetailsImpl userDetails = (UserDetailsImpl) SecurityContextHolder.getContext().getAuthentication();
    String nick = userDetails.getUsername();
    String email = userDetails.getEmail();
    String role = userDetails.getRole().name();
    return new AuthUserResponseDTO(nick, email, role);
}
Also used : UserDetailsImpl(pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl) AuthUserResponseDTO(pl.pollub.cs.pentagoncafe.flare.DTO.response.AuthUserResponseDTO)

Example 2 with UserDetailsImpl

use of pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl in project Flare-event-calendar by PollubCafe.

the class AuthSuccessHandler method onAuthenticationSuccess.

@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException {
    UserDetailsImpl userDetails = (UserDetailsImpl) authentication.getPrincipal();
    HttpSession session = request.getSession();
    session.setAttribute("username", userDetails.getUsername());
    session.setAttribute("password", userDetails.getPassword());
    AuthUserResponseDTO user = userDetails.getUserResponseDTO();
    PrintWriter writer = response.getWriter();
    mapper.writeValue(writer, user);
    response.setStatus(HttpServletResponse.SC_OK);
    writer.flush();
}
Also used : UserDetailsImpl(pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl) AuthUserResponseDTO(pl.pollub.cs.pentagoncafe.flare.DTO.response.AuthUserResponseDTO) HttpSession(javax.servlet.http.HttpSession) PrintWriter(java.io.PrintWriter)

Example 3 with UserDetailsImpl

use of pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl in project Flare-event-calendar by PollubCafe.

the class UserDetailsServiceImpl method loadUserByUsername.

@Override
public UserDetails loadUserByUsername(String usernameOrEmail) throws UsernameNotFoundException {
    String ip = getClientIP();
    if (bruteForceAttackGuard.isBlocked(ip)) {
        throw new TooManyLoginAttempts();
    }
    User user;
    if (usernameOrEmail.contains("@")) {
        user = userRepository.findByEmail(usernameOrEmail).orElseThrow(() -> new UsernameNotFoundException(messages.get("login.userAccount.notFound.ByEmail")));
    } else {
        user = userRepository.findByNick(usernameOrEmail).orElseThrow(() -> new UsernameNotFoundException(messages.get("login.userAccount.notFound.ByUsername")));
    }
    boolean enabled = user.isEnabled();
    boolean accountNonLocked = !user.isBanned();
    return new UserDetailsImpl(user.getNick(), user.getPassword(), user.getEmail(), enabled, accountNonLocked, user.getRole());
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) UserDetailsImpl(pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl) User(pl.pollub.cs.pentagoncafe.flare.domain.User) TooManyLoginAttempts(pl.pollub.cs.pentagoncafe.flare.exception.auth.TooManyLoginAttempts)

Aggregations

UserDetailsImpl (pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl)3 AuthUserResponseDTO (pl.pollub.cs.pentagoncafe.flare.DTO.response.AuthUserResponseDTO)2 PrintWriter (java.io.PrintWriter)1 HttpSession (javax.servlet.http.HttpSession)1 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)1 User (pl.pollub.cs.pentagoncafe.flare.domain.User)1 TooManyLoginAttempts (pl.pollub.cs.pentagoncafe.flare.exception.auth.TooManyLoginAttempts)1