**** EDIT: solved in the post below ****
Hello,
Maybe this is a Spring Security question not relevant for this forum, but my problem might be caused by smartGWT.
I am building a user management module, and I created a form that creates a new user in a mysql user table when submitted. I call dynamicform.saveData() for this, and I get the data through to the add(..) method. This add method internally does a call to getJdbcTemplate(), which returns null, and thus a NullPointerException. So my question is:
Question: if you call a method using DMI, are all the Spring beans initiated like specified in my applicationContext-security.xml? I am not really experienced in Spring, but do have some basic knowledge.
Anyone knows what is going wrong? If I actually start the server and watch the jdbcTemplate variable it is initialized. When the DMI comes in, it is null. I am basically using the implementaiton from the SpringSecurity thread at http://forums.smartclient.com/showth...pring+security ...
My code looks like this:
nl.sytematic.projects.Persons.server.security.SytematicJdbcDaoImpl:
my users.ds.xml
applicationContext-security.xml
Hello,
Maybe this is a Spring Security question not relevant for this forum, but my problem might be caused by smartGWT.
I am building a user management module, and I created a form that creates a new user in a mysql user table when submitted. I call dynamicform.saveData() for this, and I get the data through to the add(..) method. This add method internally does a call to getJdbcTemplate(), which returns null, and thus a NullPointerException. So my question is:
Question: if you call a method using DMI, are all the Spring beans initiated like specified in my applicationContext-security.xml? I am not really experienced in Spring, but do have some basic knowledge.
Anyone knows what is going wrong? If I actually start the server and watch the jdbcTemplate variable it is initialized. When the DMI comes in, it is null. I am basically using the implementaiton from the SpringSecurity thread at http://forums.smartclient.com/showth...pring+security ...
My code looks like this:
nl.sytematic.projects.Persons.server.security.SytematicJdbcDaoImpl:
Code:
public class SytematicJdbcDaoImpl extends JdbcUserDetailsManager implements IChangePassword { ... public DSResponse add(DSRequest req) { String username = (String) req.getFieldValue("username"); String password = (String) req.getFieldValue("password"); Boolean enabled = (Boolean) req.getFieldValue("enabled"); if (!userExists(username)) { SytematicSaltedUser user = new SytematicSaltedUser(username, password, enabled, true, true, true, AuthorityUtils.NO_AUTHORITIES, ""); createUser(user); //this makes that the password gets encoded changePassword(username, password); } ... }
Code:
<?xml version="1.0" encoding="UTF-8"?> <DataSource ID="users" serverType="sql" tableName="users"> <fields> <field name="username" type="text" length="50" primaryKey="true" required="true"/> <field name="password" type="password" length="50" required="true"/> <field name="salt" type="hidden"/> <field name="enabled" type="boolean" required="false"/> </fields> <serverObject lookupStyle="new" className="nl.sytematic.projects.Persons.server.security.SytematicJdbcDaoImpl"/> </DataSource>
applicationContext-security.xml
Code:
... <security:authentication-manager alias="authenticationManager"> <security:authentication-provider user-service-ref="jdbcUserService"> <security:password-encoder ref="passwordEncoder"> <security:salt-source ref="saltSource"/> </security:password-encoder> </security:authentication-provider> </security:authentication-manager> <beans:bean class="org.springframework.security.authentication.dao.ReflectionSaltSource" id="saltSource"> <beans:property name="userPropertyToUse" value="salt"/> </beans:bean> <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/> <beans:property name="url" value="jdbc:mysql://localhost:3306/sytematic"/> <beans:property name="username" value="test"/> <beans:property name="password" value="test"/> </beans:bean> <beans:bean class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" id="passwordEncoder"/> <beans:bean id="jdbcUserService" class="nl.sytematic.projects.Persons.server.security.SytematicJdbcDaoImpl"> <beans:property name="dataSource" ref="dataSource"/> <beans:property name="authenticationManager" ref="authenticationManager"/> <beans:property name="enableGroups" value="true"/> <beans:property name="enableAuthorities" value="false"/> <beans:property name="usersByUsernameQuery"> <beans:value>select username, password, enabled, salt from users where username = ?</beans:value> </beans:property> </beans:bean> ...
Comment