0

Spring Security を使用した認証に関して助けが必要です。アプリケーションのログイン資格情報を入力して送信をクリックしようとすると、無効な資格情報エラーが発生します。

データベースを確認しましたが、ログインに使用している認証の詳細は正しいようです。しかし、それでも以下の例外が発生します

[DEBUG,LdapAuthenticationProvider,http-localhost%2F127.0.0.1-8080-1] Processing         authentication request for user: admin
[DEBUG,FilterBasedLdapUserSearch,http-localhost%2F127.0.0.1-8080-1] Searching for user    'admin', with user search [ searchFilter: 'sAMAccountName={0}', searchBase:    'DC=ad,DC=infosys,DC=com', scope: subtree, searchTimeLimit: 0, derefLinkFlag: true ]
[INFO,SpringSecurityLdapTemplate,http-localhost%2F127.0.0.1-8080-1] Ignoring PartialResultException
[WARN,LoggerListener,http-localhost%2F127.0.0.1-8080-1] Authentication event AuthenticationFailureBadCredentialsEvent: admin; details: org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: DEC9042719AA53736897C4383DCF8FE8; exception: Bad credentials
[DEBUG,UsernamePasswordAuthenticationFilter,http-localhost%2F127.0.0.1-8080-1] Authentication request failed: org.springframework.security.authentication.BadCredentialsException: Bad credentials

私はsqlserver2008データベースに接続しようとしてログインしようとしています.Belowは私たちが使用しているsecurity.xmlファイルです

<http auto-config='false' realm="MaskIT Realm" access-denied-page="/403.jsp">
        <intercept-url pattern="/*.htm" access="ROLE_ADMIN,ROLE_REQUESTOR,ROLE_APPROVER" />
        <intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <form-login login-page="/login.jsp"
              authentication-failure-url="/login.jsp?login_error=1"
              default-target-url="/redirect.jsp" />
        <http-basic />
        <intercept-url pattern="/securityService" access="IS_AUTHENTICATED_ANONYMOUSLY"
              requires-channel="http" />
        <logout logout-success-url="/login.jsp" />
  </http>
  <b:bean id="myAuthenticationProvider"
      class="com.infosys.setl.himi.maskit.security.SwitchingAuthenticationProvider">
    <b:constructor-arg ref="paramManager" />
    <b:property name="providers">
        <b:list>
            <b:ref local="daoAuthenticationProvider" />
            <b:ref local="ldapProvider" />

        </b:list>
    </b:property>
</b:bean>


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


  <b:bean id="userDetailsService"
        class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
        <b:property name="dataSource" ref="dataSourceMSSQL" />
        <b:property name="usersByUsernameQuery">
              <b:value>SELECT user_id ,password,active FROM sec_users
                    WHERE
                    user_id=?</b:value>
        </b:property>
        <b:property name="authoritiesByUsernameQuery">
          <b:value>SELECT a.user_id AS user_id,b.roleName AS roleName FROM
                    sec_users a, emaskit_roles b
                    WHERE a.roleID = b.roleID AND
                    a.user_id=?</b:value>
        </b:property>
  </b:bean>

認証を確認するためにSQLクエリが実行される方法と時期を知りたいです。チェックを実行するためにJavaクラスを呼び出していますか(コードをデバッグして失敗した場所をチェックできるように)、それともSpringフレームワークによって内部的に行われていますか?

手伝ってください。前もって感謝します

4

1 に答える 1

1

私の兄弟は、logfile は、認証に Ldap を使用しようとしていることを示しています ( LdapAuthenticationProvider) が、xml ファイルは、DaoAuthenticationProvider.

間違ったサーバーを調べてデプロイしたか、(実際のバージョンの) アプリケーションをまったくデプロイしなかったかのいずれかで、デプロイを大量に行ったと思います。

さらに、構成に誤りがあります。Spring Security に以下を使用するように指示する必要がありますdaoAuthenticationProvider

これを追加:

<authentication-manager alias="authenticationManager">
    <authentication-provider ref="daoAuthenticationProvider"/>
</authentication-manager>
于 2013-03-22T08:48:54.327 に答える