JAAS LoginModule flags - PullRequest
       15

JAAS LoginModule flags

5 голосов
/ 27 июня 2011

Я пытаюсь выяснить, как работают флаги модуля входа в JAAS (используя JBoss 5.1 EAP), и я столкнулся с удивительной ситуацией, которую, надеюсь, кто-то сможет прояснить для меня.

Для фона мой login-config.xml выглядит так:

<authentication-policy>
  <authentication>
    <login-module code="...loginModule1" flag="sufficient">
      ...
    </login-module>
    <login-module code="...loginModule2" flag="optional">
      ...
    </login-module>
    <login-module code="...loginModule3" flag="optional">
      ...
    </login-module>
  </authentication>
</authentication-policy>

В этом случае loginModule1 является автономным, но loginModule2 зависит от loginModule3. У меня проблема в том, что если loginModule1 завершается неудачно, а loginModule2 и loginModule3 оба успешно, я все равно получаю неудачный вход в систему. Если я изменю loginModule1 на необязательный, то при сбое loginModule1 и успешном выполнении 2 и 3 я получаю успешную регистрацию.

Из документации по безопасности JBoss (http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html):

sufficient: the LoginModule is not required to succeed. If it does succeed, 
control immediately returns to the application (authentication does not proceed 
down the LoginModule list). If it fails, authentication continues down the 
LoginModule list.

Я бы подумал, исходя из этого, что когда LoginModule с достаточным флагом завершится неудачно, но следующий LoginModule пройдет, я получу успешный вход, кто-нибудь знает, почему это не так?

1 Ответ

9 голосов
/ 30 июня 2011

Вам следует ознакомиться с документацией java для класса javax.security.auth.login.Configuration , в котором содержится вся информация о том, что является достаточным, обязательным, обязательным и необязательным средним значением.Ваш вопрос имеет отношение к этому пункту:

Общая проверка подлинности завершается успешно, только если все обязательные и обязательные модули входа успешно завершены.Если достаточный модуль входа в систему настроен и успешно выполняется, то для успешной общей проверки подлинности должны быть выполнены только обязательные и обязательные модули входа в систему до этого достаточного модуля входа в систему.Если для приложения не настроены обязательные или обязательные модули входа в систему, то должен быть выполнен хотя бы один достаточный или необязательный модуль входа в систему.

Это то, что должно произойти, поэтому кажется, что ваша установка верна, но что-то не возвращается правильно, поэтому все терпит неудачу.Может быть, JBoss делает что-то немного по-другому.

...