«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

두근두근 & 차근차근 프로그래밍

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