Как я могу использовать j_spring_security_check - PullRequest
0 голосов
/ 02 мая 2011

Я использую пружину 3 + стойки 2 + спящий режим 3, моя конфигурация следующая:

app-security:
   <beans:import resource="datasource.xml"/>
 <http auto-config='true'>
    <intercept-url pattern="/CMS/login*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <form-login login-page='/CMS/login' default-target-url="/j_spring_security_check"/>
  </http>
  <authentication-manager alias="authenticationManager">
 <authentication-provider user-service-ref="userDetailsService">
<!--    <password-encoder hash="md5"/>-->
  </authentication-provider>
</authentication-manager>
</beans:beans>
datasource.xml:
<?xml version="1.0" encoding="UTF-8" ?>

<bean id="userDetailsService" 
      class="mo.cam.service.impl.UserDetailsServiceImpl">
  <property name="dataSource" ref="dataSource"/>
  <property name="enableAuthorities" value="true"/>
  <property name="usersByUsernameQuery">
    <value>SELECT LOGIN, PASSWORD, 
           1 FROM USER_INFO WHERE LOGIN = ? 
    </value>
  </property>
  <property name="groupAuthoritiesByUsernameQuery">
    <value>SELECT G.GROUP_ID, G.GROUP_NAME, P.NAME 
      FROM USER_INFO U
      JOIN USER_GROUP UG on U.USER_INFO_ID = UG.USER_INFO_ID
      JOIN GROUP G ON UG.GROUP_ID = G.GROUP_ID
      JOIN GROUP_PERMISSION GP ON G.GROUP_ID = GP.GROUP_ID
      JOIN PERMISSION P ON GP.PERMISSION_ID = P.PERMISSION_ID
      WHERE U.LOGIN = ? 
    </value>
  </property>
</bean>
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName"
            value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
        </property>
        <property name="url"
            value="***">
        </property>
        <property name="username" value=""></property>
        <property name="password" value=""></property> 
    </bean>
</beans>

и затем настройте мою страницу входа, но система просто покажет мне, что: для / cms / j_acegi_security_check не определено никаких действий и я попытался установить точку останова по адресу: mo.cam.service.impl.UserDetailsServiceImpl, но он не сломается! почему?

1 Ответ

0 голосов
/ 11 мая 2011

Вы должны определить целевой URL для входа в систему / j_spring_security_check (как вы определили в app: security) вместо / j_acegi_security_check

...