[Spring] Spring에서 깃허브 OAuth 로그인하기
·
Framework/SpringBoot
OAuth 앱 등록하기 깃허브에서 Setting > Developer Setting > OAuth Apps > Register a new application 으로 이동하여 OAuth 로그인을 할 앱을 등록해줍니다. 저는 현재 서버를 배포하지 않고 로컬에서 작업하고 있기 때문에 Hompage URL은 http://localhost:8080으로 해줬습니다. Authorization callback URL에는 로그인 후 돌아갈 즉 redirect url을 입력해주세요 토큰 생성하기 Register application을 누르고 바로 다음 화면에서 Generate a new client secret을 클릭하면 토큰이 발급됩니다. 발급받은 토큰은 Spring에서 사용되니 어딘가에 복사 해놓으세요 Spring 설..
[SpringBoot] @OneToMany, @ManyToOne, @ManyToMany 연관 관계 매핑, @JoinTable
·
Framework/SpringBoot
@OneToMany @OneToMany 어노테이션은 하나의 엔티티와 다른 엔티티간의 일대다 관계를 매핑하는데 사용됩니다. 일대다 관계에서는 하나의 인스턴스가 다른 엔티티의 여러 인스턴스와 연결됩니다. @Entity public class Department { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "department", cascade = CascadeType.ALL) private List employees = new ArrayList(); } @Entity public class Employee { @Id @GeneratedValue..
[SpringBoot]스프링 시큐리티란? (Spring Security)
·
Framework/SpringBoot
스프링 시큐리티란? Spring Security는 자바 기반 웹 애플리케이션을 위한 보안 서비스를 제공합니다. Spring의 보안을 위한 표준 라이브러리로 사용됩니다. 스프링 시큐리티가 제공하는 기능은 다음과 같습니다. 인메모리 사용자 하나를 포함하는 AuthenticationManager 빈 사용자 이름은 user이고 암호는 콘솔에 출력됩니다 /css 나 /image 같은 공용 정적 리소스 위치를 위해 무시되는 경로, 다른 모든 엔드포인트에 대한 HTTP 기본 인증 스프링의 ApplicationEventPublisher 인터페이스로 게시되는 스프링 이벤트 자동 생성되는 기본 로그인 페이지 사용 예시 @Configuration @EnableWebSecurity public class SecurityCon..
[SpringBoot] AnnotationException: targets an unknown entity named : 조인 맵핑 시 데이터 타입이 다를 경우 발생하는 에러
·
Framework/SpringBoot
에러 메세지 Caused by: org.hibernate.AnnotationException: Association 'org.coteis.domain.article.Article.algorithmNo' targets an unknown entity named 'java.lang.Integer' 발생 배경 @ManyToOne @JoinColumn(name = "algorithm_no") private Integer algorithmNo; @ManyToOne @JoinColumn(name = "difficulty_no") private Integer difficultyNo; @ManyToOne @JoinColumn(name = "language_no") private Integer languageNo; @M..
[SpringBoot] CommandAcceptanceException : table명이 예약어일 때 발생하는 Exception
·
Framework/SpringBoot
발생 배경 resource 의 data.sql 파일에 값을 넣고 실행하니 CommandAcceptanceException 이 발생하였다 중략 맨 마지막 SQLSyntaxErrorException을 보고 문법이 잘못되었나 싶었는데 그건 아니었다. 원인 파악 CommandAcceptanceException에 대해 검색해보니 원인은 다양했다 하이버네이트가 table을 만들 때 drop하지 못해서 계정의 권한으로는 할 수 없는 쿼리를 작성해서 SQL이나 H2의 예약어를 사용하여 Entity를 작성해서 나는 1번 사항에는 해당하지 않았다 하이버네이트가 table을 drop 하는 것은 확인되었기 때문이다. 2번 사항도 user 테이블 말고 다른 table에 insert하는 데에는 오류가 발생하지 않았기 때문에 해당..