Changeset 62acea2


Ignore:
Timestamp:
01/26/26 12:25:25 (6 months ago)
Author:
Filip Gavrilovski <filipgavrilovski28@…>
Branches:
main
Children:
335fee0
Parents:
561e9a6
Message:

small refactor: extract helpers in auth service

Location:
finkwave/src/main/java/com/ukim/finki/develop/finkwave
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/model/User.java

    r561e9a6 r62acea2  
    55
    66import jakarta.persistence.*;
    7 import lombok.Getter;
    8 import lombok.NoArgsConstructor;
    9 import lombok.Setter;
     7import lombok.*;
    108
    119@Setter
    1210@Getter
    1311@Entity
     12@Builder
    1413@NoArgsConstructor
     14@AllArgsConstructor
    1515@Table(name = "users")
    1616@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/AuthService.java

    r561e9a6 r62acea2  
    2929    private final int refreshTokenMaxAge = 10 * 24 * 60 * 60;
    3030
    31     // todo: should it be transactional?
    32 //    @Transactional
     31
    3332    public UserResponseDto registerAndLogIn(HttpServletResponse response, AuthRequestDto authRequestDto){
    3433        if (userRepository.findByUsername(authRequestDto.username()).isPresent()){
    3534            throw new RuntimeException("User already exists");
    3635        }
    37         User user = new User();
    38 
    39         // todo: builder / private createUser method
    40         user.setUsername(authRequestDto.username());
    41         user.setRole(Role.NONADMIN);
    42         user.setFullName(authRequestDto.fullname());
    43         user.setProfilePhoto(authRequestDto.profilePhoto());
    44         user.setEmail(authRequestDto.email());
    45         user.setPassword(passwordEncoder.encode(authRequestDto.password()));
    46         NonAdminUser nonAdminUser = new NonAdminUser();
    47         nonAdminUser.setUser(user);
    48         user.setNonAdminUser(nonAdminUser);
    49         nonAdminUserRepository.save(nonAdminUser);
    50         userRepository.save(user);
     36        createNonAdminUser(authRequestDto);
    5137        // todo: could also be redirect in controller, which one is better?
    52         return login(response, new LoginRequestDto(user.getUsername(), authRequestDto.password()));
     38        return login(response, new LoginRequestDto(authRequestDto.username(), authRequestDto.password()));
    5339    }
    54 
    5540
    5641    // todo: dto in arguments or the standalone values?
     
    10388        if (refreshToken != null){
    10489            invalidateRefreshToken(refreshToken);
    105             Cookie clearCookie = new Cookie("refreshToken", null);
    106             clearCookie.setHttpOnly(true);
    107             clearCookie.setSecure(false);
    108             clearCookie.setPath("/");
    109             clearCookie.setMaxAge(0);
    110             httpServletResponse.addCookie(clearCookie);
     90            clearCookieByName(httpServletResponse, "refreshToken");
    11191        }
     92        clearCookieByName(httpServletResponse, "accessToken");
     93    }
    11294
    113         Cookie clearAccess = new Cookie("accessToken", null);
     95    // todo: should it be transactional?
     96//    @Transactional
     97    private void createNonAdminUser(AuthRequestDto authRequestDto){
     98        User user = User.builder()
     99                .fullName(authRequestDto.fullname())
     100                .username(authRequestDto.username())
     101                .email(authRequestDto.email())
     102                .profilePhoto(authRequestDto.profilePhoto())
     103                .password(passwordEncoder.encode(authRequestDto.password()))
     104                .role(Role.NONADMIN)
     105                .build();
     106
     107        NonAdminUser nonAdminUser = new NonAdminUser();
     108        nonAdminUser.setUser(user);
     109        user.setNonAdminUser(nonAdminUser);
     110        nonAdminUserRepository.save(nonAdminUser);
     111        userRepository.save(user);
     112    }
     113
     114    private void clearCookieByName(HttpServletResponse response, String cookieName){
     115        Cookie clearAccess = new Cookie(cookieName, null);
    114116        clearAccess.setHttpOnly(true);
    115117        clearAccess.setSecure(false);
    116118        clearAccess.setPath("/");
    117119        clearAccess.setMaxAge(0);
    118         httpServletResponse.addCookie(clearAccess);
     120        response.addCookie(clearAccess);
    119121    }
    120122
     
    122124    private void addTokensToResponse(HttpServletResponse response, RefreshToken refreshToken, String accessToken){
    123125        Cookie refreshCookie = new Cookie("refreshToken", refreshToken.getToken());
     126        refreshCookie.setHttpOnly(true);
    124127        refreshCookie.setSecure(false);
    125         refreshCookie.setHttpOnly(true);
    126128        refreshCookie.setPath("/");
    127129        refreshCookie.setMaxAge(refreshTokenMaxAge);
Note: See TracChangeset for help on using the changeset viewer.