TIL

220530 TIL

Vince_rf 2022. 5. 30. 23:58

#JPA Query Method
Repository에
    // findBy까지는 규칙, Usernanme은 문법
    // select * from user where username = ? 사실상 sql로 이 코드가 실행되는 것
    public User findByUsername(String username);

#메소드 시큐리티
@EnableGlobalMethodSecurity
@EnableGlobalMethodSecurity(jsr250Enabled = true, prePostEnabled = true, securedEnabled = true)

- @Secured 와 @RollAllowed

  메소드 호출 이전에 권한을 확인한다.

  스프링 EL을 사용하지 못한다.

- @PreAuthorize 와 @PostAuthorize

  메소드 호출 이전 이후에 권한을 확인할 수 있다.

  스프링 EL을 사용하여 메소드 매개변수와 리턴값을 검증할 수 있다.

1. 먼저 MethodSecurity 를 사용하기 위해 config 패키지에 클래스를 아래와 같이 생성하고 선언한다.

@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, jsr250Enabled = true)
public class MethodSecurity {

}
  securedEnabled = true 로 설정하면 @Secured 어노테이션 사용 가능

2. 사용하고자하는 메소드 위에 @Secured 라는 어노테이션으로 설정해준다.

출처 : https://catchdream.tistory.com/205

#CSRF(Cross-Site Request Forgery)
안녕하세요, 이번에 정리할 내용은 CSRF(Cross-Site Request Forgery) 입니다!

 

스프링 시큐리티의 어노테이션인 @EnableWebSecurity 어노테이션은 기본적으로 CSRF 공격을 방지하는 기능을 지원하고 있습니다.

CSRF란 웹 애플리케이션의 취약점 중 하나로, 이용자가 의도하지 않은 요청을 통한 공격을 의미합니다.

 

즉 CSRF 공격이란, 인터넷 사용자(희생자)가 자신의 의지와는 무관하게 공격자가 의도한 행위(등록, 수정, 삭제 등)를 특정 웹사이트에 요청하도록 만드는 공격 입니다.

출처 : https://zzang9ha.tistory.com/341

#Optional 이란?

[ Optional이란? ]
Java8에서는 Optional<T> 클래스를 사용해 NPE를 방지할 수 있도록 도와준다. Optional<T>는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional 클래스는 아래와 같은 value에 값을 저장하기 때문에 값이 null이더라도 바로 NPE가 발생하지 않으며, 클래스이기 때문에 각종 메소드를 제공해준다.
출처: https://mangkyu.tistory.com/70 [MangKyu's Diary:티스토리]

#Optional 바르게 쓰기
참고 : https://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5%B4%EA%B2%8C-%EC%93%B0%EA%B8%B0/

#Model 객체란?

참고 : https://velog.io/@msriver/Spring-Model-%EA%B0%9D%EC%B2%B4

#왜 계속 ID를 username 이라고 하는가?
스프링 시큐리티에서 우리에게 익숙한 ID를 username이라고 하기 때문.

'TIL' 카테고리의 다른 글

220606 TIL  (0) 2022.06.06
220531 TIL  (0) 2022.05.31
220529 TIL  (0) 2022.05.29
220525 TIL  (0) 2022.05.26
220523 분노의 TIL  (0) 2022.05.24