오늘 한 일
회원가입 기능 구현, 로그인 기능 구현, 에러수정, 요청사항 수정, 로그아웃 레디스 어떻게 해야하는지 구글링/고민, 프로필 설정 구현하려고 노력
@PostMapping("/sign-in")
public ResponseStatusDto signIn(
@Validated @RequestBody SignInRequestDto signInRequestDto,
HttpServletResponse response
) {
TokenResponseDto tokenResponse = userService.signIn(signInRequestDto);
response.addHeader(
JwtProvider.ACCESSTOKEN_HEADER, tokenResponse.getAccessToken());
response.addHeader(
JwtProvider.REFRESHTOKEN_HEADER, tokenResponse.getRefreshToken());
return new ResponseStatusDto(HttpStatus.OK.toString(), "로그인 성공");
}
@PostMapping("/sign-in")
public ResponseEntity<String> signIn(
@Validated @RequestBody SignInRequestDto signInRequestDto)
{
TokenResponseDto tokenResponse = userService.signIn(signInRequestDto);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders
.add(JwtProvider.ACCESSTOKEN_HEADER, tokenResponse.getAccessToken());
responseHeaders
.add(JwtProvider.REFRESHTOKEN_HEADER, tokenResponse.getRefreshToken());
return ResponseEntity.ok()
.headers(responseHeaders)
.body("로그인 성공");
}
2023-01-18 01:34:55.842 ERROR 80732 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception
...
2023-01-18 01:34:55.842 ERROR 80732 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost] : Exception Processing ErrorPage[errorCode=0, location=/error]
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.boot.autoconfigure.h2.H2ConsoleProperties' available ...
→ h2콘솔을 사용할 수 있게 웹이그노어 해놔서 에러가 발생한 것 같은데… 왜??
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring()
.requestMatchers(PathRequest.toH2Console())
application.propertise에 h2 설정을 안해놔서 그럼 그래서 h2설정 넣어줬음
GenerationTarget encountered exception accepting command : Error executing DDL "
alter table user
add constraint UK_sb8bbouer5wak8vyiiy4pf2bx unique (username)" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
alter table user
add constraint UK_sb8bbouer5wak8vyiiy4pf2bx unique (username)" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:458) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:442) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:361) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:169) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:138) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:124) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:168) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:85) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:335) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498) ~[hibernate-core-5.6.14.Final.jar:5.6.14.Final] ... at com.project.matchingsystem.MatchingSystemApplication.main(MatchingSystemApplication.java:12) ~[main/:na]
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000a alter table [*]user \000a add constraint UK_sb8bbouer5wak8vyiiy4pf2bx unique (username)"; expected "identifier"; SQL statement:
alter table user
add constraint UK_sb8bbouer5wak8vyiiy4pf2bx unique (username) [42001-214]
at org.h2.message.DbException.getJd
→ 테이블 생성이 안되서 발생한 에러이다. user가 예약어라 테이블이름을 따로 설정을 해줘야하는데 빼먹음
그래서 @Entity(name = "users")
설정해줌
{"httpStatus" : "200 OK", "message": "회원가입 성공"}
/ 로그인 - 로그인 성공
그래서 통일을 시켜주기 위해 body에 들어가는 타입을 봤는데 <*T*> *ResponseEntity*<*T*> body(*@Nullable T body*);
이렇게 되어있어서 수정을 해줬다@PostMapping("/sign-in")
public ResponseEntity<ResponseStatusDto> signIn(@Validated @RequestBody SignInRequestDto signInRequestDto) {
TokenResponseDto tokenResponse = userService.signIn(signInRequestDto);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add(JwtProvider.ACCESSTOKEN_HEADER, tokenResponse.getAccessToken());
responseHeaders.add(JwtProvider.REFRESHTOKEN_HEADER, tokenResponse.getRefreshToken());
return ResponseEntity.ok()
.headers(responseHeaders)
.body(new ResponseStatusDto(HttpStatus.OK.toString(), "로그인 완료"));
}