두근두근 & 차근차근 프로그래밍
2022.01.05 본문
· JPA 활용 + Spring Boot
[ ※ MariaDB 접속 라이브러리 : JPA 라이브러리(단독) ]
[ Spring Security 적용 ]
· 환경 설정 및 Test 기능 실행
· [ @MappedSuperclass ]를 통해, '날짜' 관련 컬럼을 매번 자동으로 생성
· ENUM ( 12월 14일에 관련 내용 배운적 있음 )
- ( 문자형 ) · ( 숫자형 ) · ( 한글 표현 ) 중에서 원하는 것으로 사용 가능
- ( 한글 표현 )을 사용하기 위한 [ 방법 1 ]
- [ .name( ) ] => ( 문자형 )
- [ .ordinal( ) ] => ( 숫자형 )
· [ @Enumerated(EnumType.STRING) ]
- 테이블 생성 시, 컬럼의 데이터 타입을 VARCHAR로 설정
=> ENUM의 ( 문자형 ) 값으로 컬럼 값을 설정
· [ @ElementCollection ] : '( 1 대 多 관계 )의 단방향'으로 설정
( [ @OneToMany ]와 완벽히 같지는 않지만, 비슷한 효과를 냄 )
· 웹 구현 ( 살짝만 )
- 부여받은 롤(Role)에 따라, 해당하는 링크가 '보이는 것'과 해당하는 URI에 '접속 가능한 것'을 각기 다르게 설정
· 내가 별도로 만든 [ GreenUserDetailService(클래스) ]
=> 맨 처음에 주어진 매개 변수인 'username'만을 가지고서,
최종적으로 유저에 대한 각종 데이터를 'UserDetails(인터페이스)' 타입으로 리턴함
- 'GreenUserDetailService(클래스)' implements 'UserDetailsService(인터페이스)'
- 'UserDetailsService(인터페이스)' 안에,
'UserDetails loadUserByUsername(String username) throws UsernameNotFoundException' 라는 메서드 有
· 내가 별도로 만든 [ GreenAuthMemberDto(클래스) ]
=> 'GreenAuthMemberDto 생성자'를 통해, 유저에 대한 각종 데이터를 'UserDetails' 타입으로 가져옴
- 'GreenAuthMemberDto(클래스)' extends 'User(클래스)'
- 'User(클래스)' implements 'UserDetails(인터페이스)'
· 내가 별도로 만든 [ GreenUserDetailService(클래스) ]와 [ GreenAuthMemberDto(클래스) ]의 역할
=> 이 2개가 없으면, "롤"을 부여 받아도, '로그인이 안 됨(= 권한 인증에 실패함)'
· [ HTML ]에서 'thymeleaf 문법(sec)'를 사용할 수 있게 설정
· [ thymeleaf( th 혹은 sec ) ]
- <th:block sec:authorize="hasRole('ROLE_USER')">
- <th:block sec:authorize-url="/admin">
- <th:block sec:authorize="isAnonymous()">
- <th:block sec:authorize="isAuthenticated()">
- <p sec:authentication="name"></p> / <p th:text="${#authentication.name}"></p>
- <p sec:authentication="principal"></p>
- <p sec:authentication="principal.name"></p>
- <ul th:with="m = ${#authentication.principal}">
https://best-mint-34c.notion.site/01-05-53ec0c77c0d84b44911a4fcc55a34266
'[국비지원] AWS 클라우드 융합 자바(JAVA) 웹개발자 양성과정' 카테고리의 다른 글
2022.01.07 (0) | 2022.01.11 |
---|---|
2022.01.06 (0) | 2022.01.11 |
2022.01.04 (0) | 2022.01.11 |
2022.01.03 (0) | 2022.01.11 |
2021.12.31 (0) | 2022.01.03 |