2014-05-06 1 views
0

Я ищу простой флаг true/false в web.xml для включения или отключения проверки подлинности в JSF.Ищете флаг для отключения Auth в JSF web.xml

Ситуация:

У меня есть web.xml со следующим кодом для проверки подлинности:

<login-config> 
    <auth-method>${test.auth}</auth-method> 
    <realm-name>file</realm-name> 
</login-config> 
<security-role> 
    <description>Tester</description> 
    <role-name>Tester</role-name> 
</security-role> 
<security-constraint> 
    <display-name>Test-Server-Access</display-name> 
    <web-resource-collection> 
     <web-resource-name>Test-Server-Access</web-resource-name> 
     <description/> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <description>Tester Access</description> 
     <role-name>Tester</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <description>HTTPS Login</description> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

все работает, как ожидалось, и довольно хорошо для моей цели. Но все осталось. Как вы можете видеть, я хочу заполнить параметр (<auth-method>${test.auth}</auth-method>), и это тоже очень хорошо работает. Но теперь мне нужно что-то вроде флага для отключения всего механизма auth с таким параметром. Я уже пробовал это с <auth-method>NONE</auth-method>, но я думаю, что система все еще ожидает пользователя в тесте роли.

Итак, как отключить весь механизм auth без комментирования?

Контекст:

У меня есть различные условия для моего приложения:

  • развития на локальном компьютере

  • Тест-сервер

  • Производственно-сервер

Теперь я хочу, чтобы эта проверка подлинности выполнялась только на тестовом сервере. Для этого я использую Maven-профили для

  • развития -> нет профиля

  • Test-сервер -> тест профиля

  • Производственно-сервер -> Профиль производства

Чтобы добиться этого различного поведения, я фильтрую web.xml через maven и вставляю значения во время сборки, например <auth-method>${test.auth}</auth-method>.

Спасибо за помощь.

ответ

1

Я «решил» проблему, установив url-шаблон на неиспользуемый сайт. Это не приятно, но сейчас это работает: /.

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>file</realm-name> 
</login-config> 
<security-role> 
    <description>Tester</description> 
    <role-name>Tester</role-name> 
</security-role> 
<security-constraint> 
    <display-name>Test-Server-Access</display-name> 
    <web-resource-collection> 
     <web-resource-name>Test-Server-Access</web-resource-name> 
     <description/> 
     <url-pattern>${test.url}</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <description>Tester Access</description> 
     <role-name>Tester</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <description>HTTPS Login</description> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Буду признателен за более чистое решение, если theres любой.

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