728x90
반응형
1. 프로그래밍적 시큐리티(programmatic security)
▷ 웹 애플리케이션의 보안을 위해 코드를 작성하여 사용자의 권리 부여를 처리하는 방식
▷ 선언적 시큐리티의 보안으로 충분하지 않을때 request 내장 객체의 메소드를 사용하여 사용자를 승인하는 방법
<선언적 시큐리티 처리 예제>
[JSP 웹 프로그래밍] 시큐리티 (선언적 시큐리티 처리) (tistory.com)
◎ 프로그래밍 방식으로 보안 처리하기 예제(선언적 시큐리티 처리 마지막 예제 참고)
1. web.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?> <web-app> <security-role> <role-name>role1</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>JSP230306</web-resource-name> <url-pattern>/ch10/security02.jsp</url-pattern> <http-method>GET</http-method> </web-resource-collection> <auth-constraint> <description></description> <role-name>role1</role-name> </auth-constraint> </security-constraint> <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> </web-app>
2. login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Security</title> </head> <body> <form name="loginForm" action="j_security_check" method="post"> <p> 사용자명 : <input type="text" name="j_username"> <p> 비밀번호 : <input type="password" name="j_password"> <p> <input type="submit" value="전송"> </form> </body> </html>
3. login_failed.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Security</title> </head> <body> <p> 인증 실패했습니다. </body> </html>
4. security02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Security</title> </head> <body> <p> 사용자명 : <%= request.getRemoteUser() %> <p> 인증방법 : <%= request.getAuthType() %> <p> 인증한 사용자명이 역할명 "tomcat"에 속하는 사용자인가요? <%= request.isUserInRole("tomcat") %> <p> 인증한 사용자명이 역할명 "role1"에 속하는 사용자인가요? <%= request.isUserInRole("role1") %> </body> </html>
security 페이지에서 창을 실행하면 로그인 창이 나타납니다.
role1, both는 로그인이 됩니다. 만약 password가 틀리면 인증 실패 화면이, 맞으면 인증 성공 화면이 나타납니다.
◎ 로그인 성공했을 시 결과 화면
◎ 실패 했을 시 '인증 실패했습니다'라고 나타납니다.
프로그래밍적 시큐리티 처리는 선언적 시큐리티에서 부족할 경우 request 내장 객체의 메소드를 사용해 사용자를 승인하는 방법입니다.
예제를 보면 request를 사용해서 추가적인 정보를 확인할 수 있도록 만들 수 있습니다.
보안 기능은 중요하기 때문에 잘 알아둬야겠어요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > JSP' 카테고리의 다른 글
[JSP 웹 프로그래밍] 예외 처리 2 (web.xml 파일을 이용한 예외 처리) (1) | 2023.03.07 |
---|---|
[JSP 웹 프로그래밍] 예외 처리 1(page 디렉티브 태그 이용) (0) | 2023.03.07 |
[JSP 웹 프로그래밍] 시큐리티 1 (선언적 시큐리티 처리) (0) | 2023.03.07 |
[JSP 웹 프로그래밍] 다국어 처리 3 (JSTL fmt 태그 2) (0) | 2023.03.07 |
[JSP 웹 프로그래밍] 다국어 처리 2 (JSTL fmt 태그) (0) | 2023.03.06 |