JAAS LoginModule flags

Я пытаюсь понять, как флаги модуля входа в систему работают в 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 проходит, я получу успешный вход в систему, кто-нибудь знает, почему это не так?

5
задан bwobbones 29 June 2011 в 14:06
поделиться