2016-09-28 2 views
2

У меня есть следующая проблема с Waffle и Kerberos.Waffle Kerberos SSO - олицетворяет изменения пользователя tomcat

У меня есть приложение Java Servlet, которое работает на Tomcat и имеет SSO на Kerberos, для которого я использую вафли.

Для того, чтобы SSO работать мне пришлось включить:

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

Когда я установил олицетворять ложь ССО не работает :(

И все, кажется, работает хорошо, пользователи могут войти в мое приложение с SSO.

Но тогда я выясняю, что олицетворяющие изменения пользователи и приложения tomcat работают не под правами администратора, а как userA или userB. Итак, когда userA создает файл в моей системе (отчет, журнал, файл конфигурации), он является владелец файла d тогда, когда пользовательский вход пользователя и пытается получить доступ к этому файлу, я получаю Access denied Exception.

создать файл с помощью следующего кода:

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

Я хочу работать приложение, не изменяя пользователь, он должен создать пользователь кота, читать и добавлять файлы (Administrator) не ПользовательА или USERB.

Мне нужно Kerberos SSO с вафелем, но я не хочу, чтобы этот олицетворение работает таким образом. Есть ли другой способ сделать вафли? Или, может быть, я могу сохранить файлы любым другим способом?

ответ

0

Хорошо, я нашел решение самостоятельно.

С Олицетворять Я читал пользователь вошедший из

serverContext.getIdentity().getFqn(); 

С Олицетворять я прочитал там правильный пользователь вошедший но когда я повернулся олицетворять от Я получаю здесь кот пользователя (NT AUTHORITY \ SYSTEM) вместо зарегистрированного пользователя.

Сейчас я читаю пользователей от

request.getUserPrincipal().getName(); 

с Олицетворять выключен, и это работает для меня.

Смежные вопросы