Control response entity
This commit is contained in:
@@ -5,6 +5,7 @@ import demo.api.user.domain.User;
|
|||||||
import demo.api.user.dtos.UserSignInRequest;
|
import demo.api.user.dtos.UserSignInRequest;
|
||||||
import demo.api.user.dtos.UserSignUpRequest;
|
import demo.api.user.dtos.UserSignUpRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -43,7 +44,7 @@ public class AuthController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public TokenDto signIn(@Validated UserSignInRequest signInReq) {
|
public ResponseEntity<TokenDto> signIn(@Validated UserSignInRequest signInReq) {
|
||||||
return authService.signIn(signInReq);
|
return authService.signIn(signInReq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import demo.api.jwt.dtos.TokenDto;
|
|||||||
import demo.api.user.domain.User;
|
import demo.api.user.domain.User;
|
||||||
import demo.api.user.dtos.UserSignInRequest;
|
import demo.api.user.dtos.UserSignInRequest;
|
||||||
import demo.api.user.dtos.UserSignUpRequest;
|
import demo.api.user.dtos.UserSignUpRequest;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
||||||
public interface AuthService {
|
public interface AuthService {
|
||||||
/**
|
/**
|
||||||
@@ -18,5 +19,5 @@ public interface AuthService {
|
|||||||
* @param signInReq 유저의 이메일과 비밀번호
|
* @param signInReq 유저의 이메일과 비밀번호
|
||||||
* @return json web token
|
* @return json web token
|
||||||
*/
|
*/
|
||||||
TokenDto signIn(UserSignInRequest signInReq);
|
ResponseEntity<TokenDto> signIn(UserSignInRequest signInReq);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package demo.api.auth;
|
package demo.api.auth;
|
||||||
|
|
||||||
import demo.api.exception.CustomException;
|
import demo.api.exception.CustomException;
|
||||||
|
import demo.api.jwt.JwtTokenFilter;
|
||||||
import demo.api.jwt.JwtTokenProvider;
|
import demo.api.jwt.JwtTokenProvider;
|
||||||
import demo.api.jwt.dtos.TokenDto;
|
import demo.api.jwt.dtos.TokenDto;
|
||||||
import demo.api.user.domain.User;
|
import demo.api.user.domain.User;
|
||||||
@@ -9,7 +10,9 @@ import demo.api.user.dtos.UserSignUpRequest;
|
|||||||
import demo.api.user.repository.UserRepository;
|
import demo.api.user.repository.UserRepository;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
@@ -40,7 +43,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TokenDto signIn(UserSignInRequest signInReq) {
|
public ResponseEntity<TokenDto> signIn(UserSignInRequest signInReq) {
|
||||||
try {
|
try {
|
||||||
Authentication authentication = authenticationManager.authenticate(
|
Authentication authentication = authenticationManager.authenticate(
|
||||||
new UsernamePasswordAuthenticationToken(
|
new UsernamePasswordAuthenticationToken(
|
||||||
@@ -48,8 +51,12 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
signInReq.getPassword()
|
signInReq.getPassword()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
TokenDto tokenDto = new TokenDto(jwtTokenProvider.generateToken(authentication));
|
||||||
|
|
||||||
return new TokenDto(jwtTokenProvider.generateToken(authentication));
|
HttpHeaders httpHeaders = new HttpHeaders();
|
||||||
|
httpHeaders.add("Authorization", "Bearer " + tokenDto.getAccess_token());
|
||||||
|
|
||||||
|
return new ResponseEntity<>(tokenDto, httpHeaders, HttpStatus.OK);
|
||||||
} catch (AuthenticationException e) {
|
} catch (AuthenticationException e) {
|
||||||
throw new CustomException("Invalid credentials supplied", HttpStatus.UNPROCESSABLE_ENTITY);
|
throw new CustomException("Invalid credentials supplied", HttpStatus.UNPROCESSABLE_ENTITY);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ public class SecurityConfig {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public AuthenticationManager authenticationManager(
|
public AuthenticationManager authenticationManager(
|
||||||
AuthenticationConfiguration authenticationConfiguration) throws Exception {
|
AuthenticationConfiguration authenticationConfiguration
|
||||||
|
) throws Exception {
|
||||||
return authenticationConfiguration.getAuthenticationManager();
|
return authenticationConfiguration.getAuthenticationManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,12 +44,9 @@ public class SecurityConfig {
|
|||||||
http
|
http
|
||||||
.csrf().disable()
|
.csrf().disable()
|
||||||
.formLogin()
|
.formLogin()
|
||||||
.loginPage("/user/signIn")
|
.loginPage("/auth/signIn")
|
||||||
.loginProcessingUrl("/user/signInProc")
|
|
||||||
.usernameParameter("email")
|
|
||||||
.passwordParameter("password")
|
|
||||||
.defaultSuccessUrl("/")
|
.defaultSuccessUrl("/")
|
||||||
.failureUrl("/user/signIn?fail=true");
|
.failureUrl("/auth/signIn?fail=true");
|
||||||
|
|
||||||
//
|
//
|
||||||
http
|
http
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
|
|||||||
) throws IOException {
|
) throws IOException {
|
||||||
System.out.println(request.getRequestURI());
|
System.out.println(request.getRequestURI());
|
||||||
log.error("UnAuthorized -- message : " + e.getMessage()); // 로그를 남기고
|
log.error("UnAuthorized -- message : " + e.getMessage()); // 로그를 남기고
|
||||||
response.sendRedirect("/user/signIn"); // 로그인 페이지로 리다이렉트되도록 하였다.
|
response.sendRedirect("/auth/signIn"); // 로그인 페이지로 리다이렉트되도록 하였다.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
package demo.api.jwt.dtos;
|
package demo.api.jwt.dtos;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
public class TokenDto {
|
public class TokenDto {
|
||||||
private String access_token;
|
private String access_token;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<h1>Test Page</h1>
|
<h1>Test Page</h1>
|
||||||
<p>User</p>
|
<p>User</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="/user/signUp">Sign Up</a>
|
<a href="/auth/signUp">Sign Up</a>
|
||||||
<a href="/user/signIn">Sign In</a>
|
<a href="/auth/signIn">Sign In</a>
|
||||||
<br>
|
<br>
|
||||||
<a href="/user/profile">Profile</a>
|
<a href="/user/profile">Profile</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user