2016-09-28 4 views
2

와플과 Kerberos에 다음과 같은 문제가 있습니다.와플 Kerberos SSO - 변경 톰캣 사용자로 가장

Tomcat에서 작동하고 Kerberos에서 SSO를 사용하는 Java Servlet 응용 프로그램을 가지고 있는데 여기에는 와플을 사용하고 있습니다.

나는 SSO가 작동하지 않습니다 :(

을 false로 가장 설정하고 모든 것이 잘 작동하는 것 같다

<init-param> 
     <param-name>impersonate</param-name> 
     <param-value>true</param-value> 
    </init-param> 

, 사용자가 내 응용 프로그램에 로그인 할 수 있습니다 :

은 SSO 내가 수 있도록했다 작동하게하려면

그러나 그 다음으로 나는 톰캣 사용자와 응용 프로그램이 관리 권한이 아닌 userA 또는 userB로 가장합니다. 그래서 userA가 내 시스템 (보고서, 로그, 설정 파일)에 파일을 만들 때 그는 파일 소유자 그러면 userB 로그인 할 때이 파일에 액세스하려고하면 Access denied Exception이 발생합니다.

나는 다음 코드를 사용하여 파일을 만듭니다

File file = new File(fileName); 
file.createNewFile(); 
file.setExecutable(true, false); 
file.setReadable(true, false); 
file.setWritable(true, false); 

나는 응용 프로그램 작업을 원하는 사용자를 변경하지 않고, 그것은 바람둥이 사용자가 생성 파일 (관리자)하지 사용자 A 또는하여 B를 읽고 추가해야합니다.

와플과 함께 Kerberos SSO가 필요하지만이 가장이 이런 식으로 작동하는 것을 원하지 않습니다. 와플을 만드는 다른 방법이 있습니까? 아니면 다른 방법으로 파일을 저장할 수 있습니까?

답변

0

좋아, 해결책을 찾았습니다. 대신 로그인 한 사용자의 가장 할로

serverContext.getIdentity().getFqn(); 

에서 내가 로그인 한 사용자를 읽고 있었다 가장 할로

내가이 기록 올바른 사용자를 읽을 수는 있지만 내가 떨어져 가장 켜면 여기 바람둥이 사용자 (NT AUTHORITY \ 시스템)를 얻는다.

지금 내가 가장 할로

request.getUserPrincipal().getName(); 

에서 사용자를 읽고 꺼져 이것은 나를 위해 작동하고 있습니다.