Как настроить пружинную безопасность с помощью собственного стека JAAS? - PullRequest
1 голос
/ 14 марта 2012

Я следовал этому руководству , чтобы добавить базовую защиту Spring в мое приложение Spring mvcbasedweb.

До добавления уровня безопасности Spring мое приложение было защищено с помощью специального модуля входа в систему единого входа, настроенногоmy web.xml:

 <login-config>
        <auth-method>MyLoginModule</auth-method>
    </login-config>

Этот модуль входа в систему обеспечивает перенаправление на форму входа в систему, выполнение входа и т. д. и работает в соответствии с ожиданиями.После добавления базового уровня безопасности Spring приложение перенаправляется на мою пользовательскую страницу входа в систему и, когда я аутентифицируюсь, проходит через еще одну аутентификацию, используя стандартную форму Spring «Логин с именем пользователя и паролем».

Мой вопрос заключается в том, как настроитьвесной, чтобы использовать только мой login-config выше, чтобы выполнить аутентификацию и удалить его избыточную собственную "встроенную" форму?

Ответы [ 2 ]

0 голосов
/ 17 марта 2012

Я нашел то, что искал в справочнике Spring Security. В частности, глава Поставщик службы аутентификации и авторизации Java (JAAS) .

0 голосов
/ 14 марта 2012

Извините, я не понял ваш сценарий раньше.Отметьте this , чтобы выполнить аутентификацию.Вы должны зарегистрировать пользователя в SecurityContextHolder.

Также посетите справку по безопасности официальной пружины 3.1 .

Следующий пример относится к типовой веб-аутентификации формы (не забудьте указатьэто с пружиной j_username / password):

<form id="loginForm" name="loginForm"
action="<c:url value='my_security_check'/>" method="POST">
    ... 
<label for="user">The username</label><input type="text" name="j_username"/>
<label for="password">The password</label><input type='password'
      name='j_password'/>
    ...
<input name="submitButton" type="submit" value="submit"/>
    ...

Вы должны определить эту проверку безопасности в своем файле безопасности пружины:

    <security:form-login login-page="/login"
        default-target-url="/welcome" 
        login-processing-url="/my_security_check" />
    <security:logout logout-url="/my_security_logout"
        logout-success-url="/login" />
 </security:http>

В моем случае я 'Используя Tiles, я также должен добавить это в мой конфигурационный файл mvc:

<mvc:view-controller path="/login" view-name="login" />

Пример и исходный код: mkyong.com/spring-security/spring-security-form-login-example/

...