시큐리티 처리 방법 | 설명 |
선언적 시큐리티 | 코드 작성 없이 web.xml 파일에 보안 구성을 작성하여 사용자의 인증을 수행하는 방식이다. |
프로그래밍적 시큐리티 | request 내장 객체의 메소드를 통해 사용자의 권한 부여를 처리하는 프로그래밍 방식이다. |
servers -> Tomcat -> tomcat-users.xml
1. 해당 부분에 주석을 풀어주고
2. 아이디로 사용할 부분 (username)과 비밀번호로 사용할 부분 (password)를 작성해준다.
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat1234" roles="tomcat"/>
<user username="both" password="both1234" roles="tomcat,role1"/>
<user username="role1" password="role1234" roles="role1"/>
</tomcat-users>
보안을 걸어줄 파일이 있는 최상위 폴더 -> WEB-INF -> 새파일 만들기(web.xml)
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<security-role>
<role-name>
<!-- role name : 역할 이름 -->
role1
</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<!-- web-resource-collection : 웹 자원에 대한 접근을 설정 -->
<web-resource-name>
<!-- 보안을 걸어줄 프로젝트(최상위 폴더) 명 -->
JspBook
</web-resource-name>
<url-pattern>
<!-- 제약 조건을 걸어줄 파일 -->
/Ch10/1_security.jsp
</url-pattern>
<http-method>
<!-- 전송방식 : post or get 방식? -->
GET
</http-method>
</web-resource-collection>
<auth-constraint>
<description>
<!-- description : 설명이 필요하다면 여기에 작성 -->
</description>
<role-name>
<!-- role-name : 저 파일에 접근할 수 있는 역할이름 -->
role1
</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
1_security.jsp 파일
<body>
<p> Security </p>
<h1> 인증에 성공하셨습니다 b </h1>
</body>
인터넷 익스플로러에서 실행했을 시
이런식으로 이름/암호를 작성해달라는 창이 뜬다(무섭게), 거기에 설정해두었던 걸 입력해주면
이런식으로 페이지에 접근 할 수 있다
로그인 페이지를 저렇게 시스템 자체적인 게 튀어나오도록 하지 않고, 내가 만들 로그인 페이지에서 넘어가게끔 할 수도 있다.
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<!-- 로그인 페이지 경로 -->
<form-login-page>/Ch10/login.jsp</form-login-page>
<!-- 에러 날 경우 연결될 파일 -->
<form-error-page>/Ch10/login_failed.jsp</form-error-page>
</form-login-config>
</login-config>
속성 이름 | 속성 값 |
form 태그의 action 속성 | j_security_check |
사용자의 name 속성 | j_username |
비밀 번호의 name 속성 | j_password |
<body>
<p> login.jsp 파일 </p>
<form name="loginForm" action="j_security_check" method="post">
아이디 : <input type="text" name="j_username"><br>
비밀번호 : <input type="password" name="j_password"><br>
<input type="submit" value="로그인">
</form>
</body>
<body>
<p> 인증에 실패하셨습니다. </p>
</body>
로그인 파일을 실행하면
만약 설정하지 않은 암호를 입력한다면
설정한 암호를 입력한다면
...? 왜..이렇게 뜨는거지