대덕공부/Spring

보안프레임워크2

02O2 2022. 7. 6. 17:14

MakePrincipalFilter

- 인증을 구현하기위한 객체는 principal이고 거기안에는 request를 넣어줘야함 ( 근본적으로 setter를 가지고있지않아서)

그래서 adapter를 가지고 principal객체를 변경한거다. (누군가가 로그인했을때만 동작)

 

오늘 

1. 접근제어

2. 

 

-접근제어

1.보호대상이되는 자원 필요  일부는 보호자원 일부는 비보호자원 -> 얘네를 식별 

2.보호자원에대한 접근허용 , 사용자에게 역할을 줘야함 (role이 필요함)

3.롤을 가지고있는 사용자가 접근을 허용할것인지 말것인지 여부 결정 , 허가목록 안에 포함되어있으면 접근 허용 

왼쪽이 보호자원 오른쪽이 ROLE 부여 

->CONTROLLER 에서 허가목록만들면 응집력이 너무 낮다. 보호정책바뀌면 모든 컨트롤러 다바꿔야함 

->분리시켜서 하나의 객체로 바꾸면 응집력이 높다. :: Filter로 만들면 된다! 

 

필터는 언제든지 빼버리고 필요하면 몇개든지 추가할수있다. 

 

[java] Java의 클래스 경로에서 텍스트 파일을 실제로 읽는 방법

InputStream in = this.getClass().getClassLoader().getResourceAsStream("SomeTextFile.txt");
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/SomeTextFile.txt");
InputStream in = this.getClass().getClassLoader().getResourceAsStream("//SomeTextFile.txt");
// From ClassLoader, all paths are "absolute" already - there's no context
// from which they could be relative. Therefore you don't need a leading slash.
InputStream in = this.getClass().getClassLoader()
                                .getResourceAsStream("SomeTextFile.txt");
// From Class, the path is relative to the package of the class unless
// you include a leading slash, so if you don't want to use the current
// package, include a slash like this:
InputStream in = this.getClass().getResourceAsStream("/SomeTextFile.txt");

찾았으면 0이상의 값 못찾으면 마이너스값

 

인가되기위해서는 인증 부터 해야한다. 그래서  순서는

	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>kr.or.ddit.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter>
		<filter-name>MakePrincipalFilter</filter-name>
		<filter-class>kr.or.ddit.filter.MakePrincipalFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>MakePrincipalFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter>
		<filter-name>AuthenticateFilter</filter-name>
		<filter-class>kr.or.ddit.filter.auth.AuthenticateFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>AuthenticateFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter>
		<filter-name>AuthorizationFilter</filter-name>
		<filter-class>kr.or.ddit.filter.auth.AuthorizationFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>AuthorizationFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

이순서 유지해야함 보안정책상 그러함!!

 

 

가상인증서를만들어본다...?

 

 

 

 

 

 

 

 

 

 

 

 

 

개인키를 암호화 시키는거 aes256으로

 

비번 java

인증서만드는중

 

[채록] [오후 2:42] 이 네개 가잇으면 
[채록] [오후 2:42] 인증서 정상적으로 만들어진거

 

우왕 생겻다인증서발급받음

 

[채록] [오후 2:53] https://localhost/WebStudy03_Framework/
[채록] [오후 2:53] https