2015-03-18 2 views
0

У меня есть форма входа в веб-приложение весной. 3.1. Форма входа в систему вызывает j_spring_security_check onsubmit, и у меня есть собственный менеджер auth, который использует github rest api для аутентификации входа. Проблема с этим заключается в том, что при регистрации логина на сервере они регистрируются в виде обычного текста.Пароль отправлен в текстовом виде на сервер java spring

Проводка моей безопасности context.xml файл

<!-- Custom bean: Auth Manager --> 
    <beans:bean id="customAuthmanager" class="com.RRCenter.securityMisc.AuthManager"> 
    </beans:bean> 

    <!-- Failed login bean --> 
    <beans:bean id="failedLogin" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler" p:defaultFailureUrl="/reuiweb/login?fail=true"></beans:bean> 

    <!-- Successful login bean --> 
    <beans:bean id="successLogin" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler" p:defaultTargetUrl="/reuiweb/certifybundles?login=true"></beans:bean> 

    <!-- <beans:bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider"> 
     <beans:property name="passwordEncoder" ref="passwordEncoder"/> 
    </beans:bean> --> 

    <!-- <beans:bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"> 
     <beans:constructor-arg name="strength" value="11" /> 
    </beans:bean> --> 

    <!-- Actual auth manager --> 
    <beans:bean id="customAuthFilter" 
     class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter" 
     p:authenticationManager-ref="customAuthmanager" 
     p:authenticationFailureHandler-ref="failedLogin" 
     p:authenticationSuccessHandler-ref="successLogin" 
     p:authenticationDetailsSource-ref="myAuthDetailsSource" 
     ></beans:bean> 
     <!-- p:authenticationProvider-ref="daoAuthenticationProvider" --> 

    <!-- Auth Details Bean --> 
     <beans:bean id="myAuthDetailsSource" class="com.RRCenter.securityMisc.MyAuthDetailsSource"/> 


    <!-- Successful login bean --> 
    <beans:bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint" 
     p:loginFormUrl="/reuiweb/login" /> 

    <security:authentication-manager /> 

    <!-- Test users --> 


    <security:http auto-config="false" request-matcher="ant" disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"> 
     <!-- Enables the 9xxx ports --> 
     <security:port-mappings> 
      <security:port-mapping http="80" https="443"/> 
      <security:port-mapping http="8080" https="8443"/> 
      <security:port-mapping http="9080" https="9443"/> 
     </security:port-mappings> 


    <security:http-basic authentication-details-source-ref="myAuthDetailsSource" /> 

     <!-- Session management --> 

     <security:session-management invalid-session-url="/reuiweb/login"> 
      <security:concurrency-control max-sessions="99" expired-url="/reuiweb/login" /> 
     </security:session-management> 


     <!-- Security schema --> 
     ty:intercept-url pattern="/j_spring_security_check" requires-channel="https"/> 
     <security:intercept-url pattern="/reuiweb/certifyProvider" access="ROLE_USER,ROLE_ADMIN"/> 
     <security:intercept-url pattern="/**" access="ROLE_ANONYMOUS, ROLE_USER, ROLE_ADMIN"/> 
     <security:logout invalidate-session="true" logout-success-url="/reuiweb/allJobs" logout-url="/reuiweb/logout"/> 
     <security:custom-filter ref="customAuthFilter" position="FORM_LOGIN_FILTER"/> 


    </security:http> 

Я прочитал пару ответов на переполнение стека, где он упоминал, что я должен был использовать данные пользователя службы вместе с паролем кодировщика боба

<bean id="authProvider" 
    class="org.springframework.security.authentication.dao.DaoAuthenticationProvider"> 
    <property name="userDetailsService" ref="customUserService" /> 
    <property name="passwordEncoder" ref="encoder" /> 
    </bean> 

Однако поставщик daoAuthentication предназначен для случаев, когда пароль входа в систему хранится в базе данных. Не могли бы вы дать мне знать, как реализовать службу userdetails, когда аутентификация предоставляется службами REST API?

+0

@ holmis83 Сервер записывает каждую обрабатываемую страницу. При проверке журналов на странице j_spring_security_check следующая информация регистрируется -------> /reuiweb/j_spring_security_check? J_OTP = ****** (представленное значение формы) & submit = Submit & j_password = {password in plain text} & j_username = {подтвержденное значение формы для имени пользователя} –

+0

, который помещает эти строки в журнал? ваше приложение? или сам сервер, например, журналы apache? –

+0

Тогда, похоже, проблема с страницей входа. Как это выглядит? – holmis83

ответ

0

Используйте POST метод для формы входа:

<form action="j_spring_security_check" method="POST"> 
    <!-- input fields etc --> 
</form> 

Тогда значение представленных полей не будет появляться в апаче журналов.

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