Skip to content

Commit

Permalink
refactor : mail
Browse files Browse the repository at this point in the history
  • Loading branch information
YGwan committed Aug 12, 2023
1 parent 8232696 commit 22788ad
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 4 deletions.
24 changes: 24 additions & 0 deletions src/main/java/se/ton/t210/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import se.ton.t210.domain.Member;
import se.ton.t210.domain.MemberRepository;
import se.ton.t210.dto.MemberTokens;
import se.ton.t210.dto.SignInRequest;
import se.ton.t210.dto.SignUpRequest;
import se.ton.t210.exception.AuthException;
import se.ton.t210.service.token.MemberTokenService;
Expand Down Expand Up @@ -44,6 +45,29 @@ public void signUp(SignUpRequest request, String tokenEmail, HttpServletResponse
responseTokens(response, tokens);
}

public void signIn(SignInRequest request, HttpServletResponse response) {
if (!memberRepository.existsByEmailAndPassword(request.getEmail(), request.getPassword())) {
throw new AuthException(HttpStatus.UNAUTHORIZED, "The username or password is not valid.");
}
final MemberTokens tokens = memberTokenService.createTokensByEmail(request.getEmail());
responseTokens(response, tokens);
}

public void reissueToken(String accessToken, String refreshToken, HttpServletResponse response) {
final MemberTokens tokens = memberTokenService.reissue(accessToken, refreshToken);
responseTokens(response, tokens);
}

public void reissuePwd(String email, String newPwd) {
Member member = memberRepository.findByEmail(email).orElseThrow(() ->
new AuthException(HttpStatus.NOT_FOUND, "User is not found"));
if (member.getEmail().equals(newPwd)) {
throw new IllegalArgumentException("The password you want to change must be different from the previous password.");
}
member.reissuePwd(newPwd);
memberRepository.save(member);
}

private void responseTokens(HttpServletResponse response, MemberTokens tokens) {
CookieUtils.loadHttpOnlyCookie(response, accessTokenCookieKey, tokens.getAccessToken());
CookieUtils.loadHttpOnlyCookie(response, refreshTokenCookieKey, tokens.getRefreshToken());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import se.ton.t210.dto.Email;
import se.ton.t210.service.mail.form.Email;

@ConditionalOnProperty(value = "auth.mail.enable.mode", havingValue = "true")
@Async
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import se.ton.t210.dto.Email;
import se.ton.t210.service.mail.form.Email;

@ConditionalOnProperty(value = "auth.mail.enable.mode", havingValue = "false", matchIfMissing = true)
@Component
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package se.ton.t210.service.mail;

import se.ton.t210.dto.Email;
import se.ton.t210.service.mail.form.Email;

public interface MailServiceInterface {

Expand Down
18 changes: 18 additions & 0 deletions src/main/java/se/ton/t210/service/mail/form/AuthEmailForm.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package se.ton.t210.service.mail.form;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AuthEmailForm {

@Value("${auth.mail.title}")
private String emailAuthMailTitle;

@Value("${auth.mail.content.header}")
private String emailAuthMailContentHeader;

public Email creatEmail(String content, String toAddress) {
return new Email(emailAuthMailTitle, emailAuthMailContentHeader + content, toAddress);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package se.ton.t210.dto;
package se.ton.t210.service.mail.form;

import lombok.Getter;

Expand Down

0 comments on commit 22788ad

Please sign in to comment.