2013-03-25 2 views
1

Я хочу использовать весеннюю безопасность для обработки параллелизма сеансов. Я хочу предотвратить вход в одни и те же учетные записи. До сих пор я выполнил проверку подлинности, выполнив команду AuthenticationProvider. Я перепробовал метод authenticate(), и я думаю, что процесс аутентификации теперь прекрасен. Мой следующий шаг - добавить сессию concurreny. Я добавил это в моем весеннем XML:Spring session concurrency

<beans:bean id="loginAuthenticator" class="[...]" /> 

<sec:http auto-config='true'> 
    <sec:intercept-url pattern="/login.do" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <sec:intercept-url pattern="/**" access="ROLE_USER" /> 
    <sec:form-login login-page="/login.do" login-processing-url="/j_spring_security_check" default-target-url='/home.do' always-use-default-target='true'/> 
    <sec:logout logout-success-url="/login.do"/> 

    <sec:session-management session-fixation-protection="migrateSession" session-authentication-error-url="/login.do" invalid-session-url="/login.do"> 
     <sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" /> 
    </sec:session-management> 
</sec:http> 

<sec:authentication-manager> 
    <sec:authentication-provider ref='loginAuthenticator' /> 
</sec:authentication-manager> 

Я попытался протоколирование в тех же счетах, но он был еще в состоянии пройти. Не могли бы вы рассказать мне о том, чего мне не хватает? Есть ли что-то, что мне нужно реализовать или расширить? Является ли конфигурация xml неправильной?

Спасибо.

EDIT: войти в соответствии с просьбой

INFO: Initializing Coyote HTTP/1.1 on http-8080 
Apr 04, 2013 4:40:15 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - displayLoginPage() 
INFO : com.addressbook.security.LoginAuthenticator - ----------> authenticate() - authenticating user credentials 
INFO : com.addressbook.utils.HashService - ----------> finally block hashing function 
INFO : com.addressbook.security.LoginAuthenticator - ----------> username: testuser1 
INFO : com.addressbook.security.LoginAuthenticator - ----------> password: 6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090 
INFO : com.addressbook.security.LoginAuthenticator - ----------> user xml file path: C:\Users\jlim\addressbook\xml\users.xml 
INFO : com.addressbook.security.LoginAuthenticator - ----------> reached finally block fetchUsers: [[email protected], [email protected], com. 
[email protected]] 
INFO : com.addressbook.security.LoginAuthenticator - ----------> user exists?: true 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - showHomePage() 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - user from session: testuser1 
INFO : com.addressbook.dao.impl.ContactDaoImpl - ----------> contacts xml file path: C:\Users\jlim\addressbook\xml\contacts.xml 
INFO : com.addressbook.dao.impl.ContactDaoImpl - ----------> reached finally block fetchContactsFromXml(): [[email protected], [email protected] 
2f, [email protected]] 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - displayLoginPage() 
INFO : com.addressbook.security.LoginAuthenticator - ----------> authenticate() - authenticating user credentials 
INFO : com.addressbook.utils.HashService - ----------> finally block hashing function 
INFO : com.addressbook.security.LoginAuthenticator - ----------> username: testuser1 
INFO : com.addressbook.security.LoginAuthenticator - ----------> password: 6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090 
INFO : com.addressbook.security.LoginAuthenticator - ----------> user xml file path: C:\Users\jlim\addressbook\xml\users.xml 
INFO : com.addressbook.security.LoginAuthenticator - ----------> reached finally block fetchUsers: [[email protected], [email protected], com.a 
[email protected]] 
INFO : com.addressbook.security.LoginAuthenticator - ----------> user exists?: true 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - showHomePage() 
INFO : com.addressbook.controllers.LoginController - ----------> LoginController - user from session: testuser1 
INFO : com.addressbook.dao.impl.ContactDaoImpl - ----------> contacts xml file path: C:\Users\jlim\addressbook\xml\contacts.xml 
INFO : com.addressbook.dao.impl.ContactDaoImpl - ----------> reached finally block fetchContactsFromXml(): [[email protected], [email protected] 
18, [email protected]] 
+3

Is '' достаточно для вас? – Xaerxess

+0

@Xaerxess, ваше предложение уже находится в моем xml, но оно не работает :(пожалуйста, помогите – Oneb

+0

Можете ли вы добавить '' в свою конфигурацию и опубликовать результат после входа в одну учетную запись из двух пользовательских агентов? – Xaerxess

ответ

1

Вы добавили слушателя в вашем web.xml:

<listener> 
    <listener-class> 
     org.springframework.security.web.session.HttpSessionEventPublisher 
    </listener-class> 
</listener> 

Кроме того, обратите внимание на documentation (версии 3.2, но это же в 3.x)

+0

да @ Дани, я уже добавил это. Благодарю. – Oneb