atmがわからない問題です。ユーザーテーブルを介してログインを処理する休止状態があります。アプリの実行中にこのテーブルが操作された場合、ログイン側で変更は行われません (ただし、テーブルでは変更が行われますが、私はそのために ZK を使用しており、変更を正しく確認できます)。したがって、次のようにログインすると: 管理者パスワード
次に、パスワードを newpassword に変更します
ログインの変更が行われる前に、アプリをクリーンアップしてビルドし、実行する必要があります。言い換えれば、ユーザーテーブルのデータを一度だけチェックして、どこかに保持していると思いますか?
とにかく私が役立つと思うコード:
applicationContext-security.xml のスニペット
<beans:bean id="sesFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<beans:property name="configLocation">
<beans:value>classpath:\hibernate.cfg.xml</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="userDAO" class="login.UserLoginDAOImpl">
<beans:property name="sessionFactory" ref="sesFactory"></beans:property>
</beans:bean>
<beans:bean id="userService" class="login.UserLoginService">
<beans:property name="userDAO" ref="userDAO"></beans:property>
</beans:bean>
<authentication-manager>
<authentication-provider user-service-ref="userService">
<!--<password-encoder hash="sha" />-->
</authentication-provider>
</authentication-manager>
hibernation.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<mapping class="contacts.Contacts" />
<mapping class="login.Users" />
</session-factory>
</hibernate-configuration>
UserLoginDaoImpl:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package login;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
/**
* The Class UserLoginDAOImpl
*/
public class UserLoginDAOImpl implements UserLoginDAO {
/** The hibernate template. */
private HibernateTemplate hibernateTemplate;
/**
* Sets the session factory.
*
* @param sessionFactory
* the new session factory
*/
public void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
@Override
public Users loadUserByName(String name) {
if (name != null && !name.equals("")) {
List<Users> usr = hibernateTemplate
.find("from Users where username ='" + name + "'");
System.out.println(usr.get(0));
if (usr.size() == 1) {
return usr.get(0);
} else {
System.out.println("USER SIZE IS INCORRECT");
return null;
}
} else {
return null;
}
}
}