문제

JBoss에서 꽤 일반적인 Java EE 응용 프로그램이 실행됩니다. JBOSS DatabasEloginModule JAAS 인증을 사용합니다. 또한 최대 절전 모드에는 응용 프로그램 계층 사용자/역할이 정확히 동일합니다.

나는 모든 사용자를 읽기 전용 사용자로 만드는 소프트웨어 라이센스 개체 (Hibernate를 사용하지 않음)에서 설정할 수있는 기능 비트를 가질 수있는 아이디어 (어쨌든 나에게 매우 유용하다고 생각합니다)가 있습니다. 이를 통해 제품의 읽기 전용 버전을 재생으로 만들 수 있습니다.

내가하고 싶은 것은 프로그램 내부에 액세스 할 수있는 부울 플래그를 기반으로 사용자 협회를 다시 맵핑하는 것입니다.

그래서 일반적으로 우리는 얻습니다 (많은 사람들이 합류)

사용자 -*userrole* -role-*role -bections

어디

user.roleid => 역할 .id

부울이 설정된 경우 (소프트웨어 라이센스에 설정된 기능 비트)

라이센스가 그렇게 말할 때 JAA가 모든 사용자가 RoleID = 1 인 것처럼 행동하기를 원합니다.

어떤 아이디어?

도움이 되었습니까?

해결책

데이터베이스 서버 로그 인 모드를 서브 클래싱하여 추가 점검을 수행 할 수 있습니다. (소프트웨어 라이센스)

사소하게 나는 할 수있다

  1. 라이센스가 만료되면 Readonly 사용자에게 제공합니다 (자격 증명이 수정되었습니다)

  2. 라이센스에 읽기 전용 기능 비트 세트가있는 경우 읽기 전용 사용자에게 제공합니다 (자격 증명이 수정 됨)

로그인이 차단되었으므로 최대 절전 모드 사용자 조회는 올바른 사용자를위한 것입니다.

다른 팁

어쩌면 나는 여기에 보트를 놓치고 있지만 왜 그렇게 프로그래밍하지 않습니까?

~ 안에 User 물체, 일시적인 getter와 같은 것을 제공하십시오 getAuthenticatedRoles() 그것은 추가로 무엇을 필터링 할 것입니다 Hibernate 짐을 실은. 추가로, 원래 매핑 된 컬렉션 getter를 만드십시오 protected, 그리고 만 사용하십시오 getAuthenticatedRoles() 다른 Java 코드에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top