authFilter (권한 프레임 워 크) 에 light - comons 가입

라이트 코 먼 스에 권한 을 두 고 망 설 였 지만 결국 넣 기로 했다.light - comons 는 가 벼 운 도구 모음 을 제공 합 니 다. 권한 이라는 자주 언급 되 는 문 제 는 고려 해 야 합 니 다.
라이트 코 먼 스 와 자 카 르 타 코 먼 스 는 어떤 차이 가 있 느 냐 는 질문 이 있 습 니 다.처음에 이 문 제 는 나 자신 도 분명하게 생각 하지 못 했다.몇 번 의 light - comons 업 데 이 트 를 통 해 저 는 light - comons 의 포 지 셔 닝 을 찾 았 습 니 다. 이것 은 anti - spring - api 입 니 다. 이것 은 spring 과 같은 등급 에 있 는 것 이지 Jakarta - comons 와 같은 등급 에 있 는 것 이 아 닙 니 다.
spring - ioc 프레임 워 크 를 사용 하여 spring - bean 형식 으로 '가 져 오 면 쓴다' 는 종 류 를 많이 밀봉 하 였 습 니 다.그러나 이 종 류 는 spring - ioc 에 의 해 작 동 된다.
Jakarta - comons 는 분명히 더 작은 크기 의 패 키 징 을 제공 하 는 것 이 고 우 리 는 일상생활 에서 20% 도 안 되 는 기능 만 사용 할 수 있다.
light - comons 의 패 키 징 은 비교적 굵 은 입자 로 '가 져 오 면 사용 하 는' 종 류 를 제공 하 는 데 목적 을 둡 니 다. 그러나 이러한 종 류 는 ioc 용기 에 의존 하지 않 고 독립 적 이 며 사용자 가 어디에서 어떤 형식 으로 호출 할 지 결정 합 니 다.물론 스프링 구조의 프로젝트 에 도 사 용 될 수 있다.
최근 포럼 에서 jquery 와 prototype 의 싸움 을 보 니 spring 의 처리 방식 이 jquery 처럼 '확장 프레임 워 크' 를 실현 한 것 같 았 고, light - comons 는 prototype 처럼 'API' 만 제공 한 것 같 았 다.분명히 취향 에 있어 서 는 아직 정설 이 나 지 않 았 다.
제 가 07 년 6 월 에 댓 글 을 하나 달 았 거 든 요.
4. 567915. (국민 투표 의 선 정수 에 의 해 숨겨 진 지 1 년 이 되 었 습 니 다. 시간 이 정말 빠 릅 니 다) 그 당시 의 생각 은 절대적 이 었 지만 저 는 소박 한 코드 로 프로 그래 밍 하고 싶 습 니 다. 의존 하 는 제3자 프로젝트 를 모 르 더 라 도 유형 명, 변수 명, 방 법 명 을 통 해 코드 를 읽 을 수 있 습 니 다.대상 공장, Context, yes, but why must spring?
좀 멀 었 습 니 다. 새로 가입 한 AuthFilter 에 대해 말씀 드 리 겠 습 니 다.
AuthFilter 는 1 년 여 전에 쓴 코드 입 니 다. 이번 open 은 light - comons 에 들 어가 도움 이 되 고 피드백 도 받 고 싶 습 니 다.
핵심 클래스 AuthManager 부터 소개 합 니 다.
인용 하 다.
AuthManager 아래 는 정적 인 방법 으로 threadlocal 로 이 루어 집 니 다.
AuthManager. login (IUser user) -- 사용자 로그 인
AuthManager.logout()          -- 사용자 로그 인
AuthManager. getAuthentication () -- 인증서 가 져 오기
AuthManager.getUser()        -- 현재 로그 인 한 사용자 가 져 오기 (IUser 대상 으로 돌아 가기)
그리고 중요 한 인터페이스 가 하나 더 있어 요. IUser.
public interface IUser {
	//          PermissionKeys
	Set<String> getPermissionKeys();
	//      (       )
	boolean isSuperUser();
} 

이제 손 을 쓸 수 있 습 니 다.
물론 웹. xml 에서
filter 의 정 의 를 추가 합 니 다. 보통 첫 번 째 필터 위치 에 놓 습 니 다:
<filter>
	<filter-name>light-auth</filter-name>
	<filter-class>org.lightcommons.web.auth.AuthFilter</filter-class>
</filter>

<filter-mapping>
	<filter-name>light-auth</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

그 다음은 classpath 에서.
auth. properties 가입
인용 하 다.
\ # 프레임 제한 없 는 페이지
page.ignores=/;/js/*;/images/*;/verify
\ # 로그 인 페이지, 로그 인 하지 않 은 상태 에서 접근 할 수 없 는 페이지 를 요청 하면 로그 인 페이지 로 이동 하고 마지막 으로 방문 한 주 소 를 lasturl = xxxx 에 넣 어 되 돌 릴 수 있 습 니 다.
page.login=/login.html
\ # 접근 할 수 없 는 페이지 url, 로그 인 상태 에서 접근 할 수 없 는 페이지 를 방문 하면 denied 페이지 로 이동 합 니 다.
page.denied=/denied.action
\ # PermissionKey 정의
auth.user.view=/user/view;/user/list;
auth.user.modify=/user/new;/user/save;/user/edit;/user/update;
auth.user.delete=/user/delete
그리고 User 의 model 을 수정 하여 implement IUser 를 만 듭 니 다.
마지막 으로 verify action 을 작성 하여 verify 방법 에서 사용자 이름, 비밀 번 호 를 검증 합 니 다.
AuthManager. login (someuser) 호출 하기;
예 를 들 어 사용자 가 user. view 라 는 permissionKey 를 가지 고 있 으 면 접근 할 수 있 습 니 다.  /user/view  / user / list 2 페이지 와 이 permissionkey 가 없 으 면 안 됩 니 다.

좋은 웹페이지 즐겨찾기