' ~~/read'
우리 전체 프로젝트를 하게되면
객체, 클래스들을 지정하는 곳임 context parameter
컨텍스트가 실행된 다음에
appServlet은 자바 서버로 만든것이다라는 키워드
여기는 내가 코딩하는 것에 대한 설정들이 들어있는 코드
문지기 역할 : DispatcherServlet
<init-param> : 초기화 값
어떻게 구성되는지 알려주는 .xml에 들어있다 이런 이야기
우리는 아무것도 없지만
~~.do 이런게 잇으면 그 페이지만
보안에 관련
네이버는 ~~.nhn이라는 접미사를 붙이기도한다.
security에서는 enKor한글인코딩에 제일 먼저 나와야한다
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
DelegatingFilterProxy 찾아가기
DI : 제어의 역전 내가 필요한 클래스를 누가 주입을 해주는게 인젝션
디펜던시 인젝션
Proxy : 내가 프로젝트를 수행할 때 뭐가 필요한지 감시하고 교통정리하고 하는 그런 기능들을 통틀어서 부르는 단어
Deleagating(대리자) 뭔가요청을하면 저 친구한테 보내는거
springSecurityFilterChain : 이 객체가 어딘가에 있을 거
mvc 패턴 : 클래스같은거를 이용해서 (우리가 기본적으로 만드는 프로젝트)
simple security 프로젝트는 스프링프로젝트의 가장 간단한!! 다 삭제하고 webapp에 index.jsp만 있음
>> web.xml
어디 거치지말고 걍 보내부러라 ~
컨트롤러 서비스 패키지
마이바티스도 이러이러한접근을 통해 사용하게 해주는
>> *-context.xml
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"></bean>
트랜잭션을 대신해주는 친구
에시큐엘세션템플릿도 같이
<tx:annotation-driven/>
이것도 같이 사용해주고
컨트롤러 메소드에 어노테이션@Transactional 이걸 붙여준당!
>> mybatis-context.xml
root-context와 같은 역할을 하는 bean Configuration 파일을 만들어줌
>>security-context.xml
스프링 시큐리티에는 사용자 테이블이랑 권한테이블이 나눠져잇다
한사람에게 다수의 권한을 부여해서 여러가지역할을 수행할 수있게
1 : n 의 테이블을 만들어야함
이 메서드는 오라클 유저네임이랑 패스워드를 입력하면
암호화시켜서 파일을 아예 만들어줌!!!
디비에 보낼때는 다시 복호화 시켜서 보내야함
다시 복호화 시켜서 보내는 건 mybatis-context.xml에 bean들을 생성해줌
>> exec/ MakeDBSecurity
이 클래스를 사용하는 동안에만 사용하는 환경변수
속여주는거임
>> exec / EnvList
final 을 붙이면 상수가 됌
관리가 쉬워짐
생성자를 대신 만들어주는 친구
@RequiredArgsConstructor
클래스 위에 붙여줌
@autowired보다
메모리 누수현상이 없고 더 안정적인 코드다
@Slf4j
@RequiredArgsConstructor
@Service("userDetailServiceV1")
public class UserDetailServiceImplV1 implements UserDetailsService {
/*
* 그동안 Autowired를 사용하여 객체를 주입받아서 사용해 왔는데
* @Autowired로 주입받은 객체에 메모리 누수현상이 발생을 하더라
*
* 주입받을 객체를 final로 선언을 해주는데
* final로 선언한 객체는 반드시 생성자에서 객체 초기화(주입)을 해야한다
*
* 1. 주입받을 객체를 final로 선언하고
* 2. 생성자의 매개변수를 통하여 객체를 초기화 한다.
* 3. 주입받을 객체의 갯수가 늘어나거나 줄면
* 생성자를 또다시 변경해야하는 번거로움이 있다.
*
* lombok의 @RequiredArgsConstructor 를 사용하면
* final로 선언된 모든 필드변수들을 모아서 생성자로 만들어준다.
* >> 훨씬 더 세련된 코드
*/
private final UserDao userDao;
private final AuthorityDao authDao;
>> auth / UserDetailServiceImplV1