RubyOnRails 회원/권한 관리 Framework 목록

회원관리 솔루션

Devise

제일 많이 사용되는 솔루션. 특별한 이유가 없다면 이걸 쓰면 된다.
https://github.com/heartcombo/devise

Clearance

https://github.com/thoughtbot/clearance

CanCan

더 이상 업데이트가 되지 않고 있다.
https://github.com/ryanb/cancan

CanCanCan

Devise에 비하면 Star도 적고 특별히 차별화 되어있지 않다. Devise가 질렸다면 써볼수도 있겠지만…

권한관리 솔루션

PunchIt

Authlogic

https://github.com/binarylogic/authlogic
가장 최근 생긴 프로젝트로 업데이트 잘 되고 있는 것 같다

SpringSecurity 에서 사용자 정보 (받아오기)뽑아서 쓰기

스프링 시큐리티를 사용하다가 사용자 정보를 뽑아서 써야되는데 참 갑갑할때가 있다.

내가 만든 것도 아니라서 어디서 뽑아다가 써야될지도 잘 모르겠고

스프링 시큐리티 너무 복잡해서 어떻게 찾을지도 잘 모르겠고 그럴때가 많다.

google search keyword : spring security get current user details

http://stackoverflow.com/questions/248562/when-using-spring-security-what-is-the-proper-way-to-obtain-current-username-i

스택오버플로우가 글이 날라가지는 않을 것 같지만 혹시나 해서 그냥 퍼놔야겠다.

1. SpringSecurityContextHolder를 사용하는 방법

2. 뭔지 잘 모르겠는데 좋아보이는 방법 – 토큰을 집어오는것같다.

3. User는 아니지만 UserPrincipal을 가져오는 방법

 

 

ACL,Access Control List 접근 제어 목록

사용자별로 권한을 부여하고 그 권한을 바탕으로 접속 허용 여부를 결정하는 것을 말한다.

값은 보통 String을 사용한다.

 

guest, member, admin 세개의 권한이 있다.

사용자들은 위 권한중의 몇 가지(중복가능)의 권한을 가지고 있다.

권한은 사용자가 가진 최상위 권한을 우선 적용한다. 구현하기 나름이지만… member {student, teacher} 이런식으로 포함관계를 갖게 만들수도 있고 {minsu, dongsu}와 같이 수평 개념으로 만들수도 있다.

예1)

연습장에다가 다음의 사용자 이름을 적어본다

이건희, 이재용, {내이름}, 박정희

다음의 사용자가 있다고 가정하고 {guest, admin, member} 세개의 권한을 적당히 줘 본다.

예2)

그럼 다음 기능에 권한을 줘 보자

{사용자목록보기, 공지사항읽기, 공지사항댓글쓰기, 자유게시판 읽기}

(역시 구현하기 나름이지만 기능에 권한을 줄 수도 잇고 페이지에 줄 수도 있다. 도쿠위키의 경우는 페이지에 준다.)

 

이거 대충 보고 dokuwiki를 설치하고 ACL설정을 해 보면 곧 이해가 갈 것이다.

굳이 dokuwiki를 찝어서 말한것은…. 이게 설치하기 쉬우니까