Spring Security с проблемой источника данных Hibernate. Логин не отвечает - PullRequest
0 голосов
/ 23 февраля 2011

У меня была проблема, которая беспокоила меня некоторое время.Поиск на этом сайте и в Google не очень помог.Я уже разместил эту проблему на весеннем исходном форуме здесь , но никто еще не ответил, поэтому я подумал, что можно попробовать здесь.Вы всегда получаете ответ на stackoverflow: -)

У меня есть пользовательский UserDetailsService с автопроводными пользователями dao bean.Когда я запускаю приложение в режиме разработки, я получаю страницу входа.При входе в систему ничего не происходит.Как ни странно, приложение не ломается и не выдает ошибку.Я использовал некоторые операторы println, чтобы выяснить, в какой точке служба логина попадает в мой класс UserDaoImpl в этой строке:

List<User> temp = getHibernateTemplate().find("select h from users h where username='" + username + "'");

, где она останавливается, после этого любые сообщения println не отображаются на консоли.Вкратце это мои конфигурации.Если вам нужно больше подробностей, просмотрите подробное объяснение, которое я разместил на весеннем исходном форуме.

<http auto-config="true">
   <intercept-url pattern="/gwtsecurity/**" access="ROLE_USER"/>
   <intercept-url pattern="/gwt/**" access="ROLE_USER"/>
   <intercept-url pattern="/**/*.html" access="ROLE_USER"/>
   <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
   <intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
   <form-login login-page="/login.jsp"/>
</http>

<beans:bean id="userDetailsService" class="com.kibyegn.server.auth.UserDetailsServiceImpl">
</beans:bean>

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

<beans:bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
   <beans:property name="providers">
       <beans:list>
           <beans:ref local="daoAuthenticationProvider" />
       </beans:list>
   </beans:property>
</beans:bean>

<authentication-manager>
   <authentication-provider user-service-ref="userDetailsService">
   </authentication-provider>
</authentication-manager>

и мой конфигурационный файл гибернации

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver" />
    <property name="url" value="jdbc:postgresql://127.0.0.1:5432/GwtApp" />
    <property name="username" value="postgres" />
    <property name="password" value="password" />
</bean>
<!-- HIBERNATE CONFIGURATION -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.kibyegn.client.model.User</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="userDao"
    class="com.kibyegn.client.dao.UserDaoImpl"
    scope="singleton">
    <property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>

<bean id="userDetailsService"
    class="com.kibyegn.server.auth.UserDetailsServiceImpl">
</bean>

Может кто-нибудь спасти меня от моих страданий.Помощь высоко ценится.Kibet.

1 Ответ

1 голос
/ 02 марта 2011

Я исправил это, проблема была в том, что я импортировал класс Entity и Table из org.hibernate.annotations вместо javax.persistence. После изменения я получил некоторые ошибки, но я их исправил, и теперь это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...