quilt code
정리정리 본문
1. 스프링 시큐리티에서 submit할 때
1)
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<form 태그 사용 시
<sec:csrfInput />
</form>
2) ajax 사용시
beforeSend : function(xhr){
xhr.setRequestHeader("${_csrf.headerName}","${_csrf.token}");
},
success : function(result){
3) 파일 업로드 시
<form .. action="요청URI?${_csrf.parameterName}=${_csrf.token}"
method="post" enctype="multipart/form-data">
<sec:csrfInput />
</form>
2. 자동 로그인
1) 로그인하면 특정 시간 동안 다시 로그인 할 필요가 없는 기능
2) 스프링 시큐리티는 데이터베이스를 사용하여 처리. persistent_logins 테이블.
3) security-context.xml에서 remember-me 태그를 이용하여 구현함.
3. 스프링 시큐리티 표현식
1) hasRole("ROLE_MEMBER") : 해당 롤(Role:권한)이 있으면 true
2) hasAnyRole("ROLE_MEMBER","ROLE_ADMIN") : 여러 롤들 중에서 하나라도 해당하는 롤이 있으면 true
3) principal : 인증된 사용자의 사용자 정보(UserDetails 인터페이스를 구현한 클래스의 객체)
ex) <sec:authentication property="principal" var="principal" />
4) authentication : 인증된 사용자의 인증 정보(Authentication 인터페이스를 구현한 클래스의 객체)
5) permitAll : 모든 사용자에게 허용
6) denyAll : 모든 사용자에게 거부
7) isAnonymous() : 익명의 사용자의 경우(로그인을 하지 않은 경우도 해당)
ex) <sec:authorize access="isAnonymous()"></sec:authorize>
8) isAuthenticated() : 인증된 사용자의 경우 true
ex) <sec:authorize access="isAuthenticated()"></sec:authorize>
9) isFullyAuthenticated() : Remember-me로 인증된 것이 아닌 일반적인 방법으로 인증된 사용자인 경우 true
4. 분석/설계
1) 개체 Entity
- 명사
- 업무 프로세스에서 빠져서는 안 될 중요한 개념
- 계속 관심을 갖고, 지속적으로 업데이트할 대상. 자주 사용하고 있는 개념
- 개체와 개체는 서로 구별이 명확. 범위도 명확.
2) 관계 Relationship
- 동사
- 개체와 개체간에 관계가 있음
- 관계 차수는 1:1, 1:N, N:M. 이 중에서 N:M의 관계는 데이터베이스에서 처리할 수 없으므로 1:N의 관계로 해소해줘야함
3) 속성 Attribute
- 개체가 공통적으로 갖고 있는 공통성질