Hi Emilio,
I had the same problem, since I had to build an Appfuse application upon an
existing database, where the login information are stored in a table that is
maintained by a third-party application.
Furthermore the database had a lot of composite primary-keys, which are not
easily handled with Hibernate.
With this requirements I went for iBATIS instead of Hibernate as DAO
framework, since this allows me to easily change SQL statements with almost
no impact on the source code.

So in my case I just modified UserSQL.xml in the sections:
 <resultMap>
 <select id="getUser">
 <select id="getUserByUsername">
 <select id="getUsers" resultMap="userResult">

and removed from
 <select id="getUserRoles">
the join with "user_role".

Then I did the following change to UserDaoiBatis.java:
    public UserDetails loadUserByUsername(String username) throws
UsernameNotFoundException {
         User user = (User)
getSqlMapClientTemplate().queryForObject("getUserByUsername", username);

         if (user == null) {
             logger.warn("uh oh, user not found...");
             throw new UsernameNotFoundException("user '" + username + "'
not found...");
         } else {
                 String role;
                 if (user.getUsername().equalsIgnoreCase("admin")) {
                         role = "ROLE_"+user.getUsername().toUpperCase();
                 } else {
                         role = "ROLE_USER";
                 }
             List roles =
getSqlMapClientTemplate().queryForList("getUserRoles", role);
             user.setRoles(new HashSet<Role>(roles));
             user.setEnabled(true);
         }

         return user;
     }
That implies that there is just one administrator and it has to be exactly
"admin".

If you intend to stay with Hibernate I suppose you need to make changes in
annotations @Column in model User.java in order to map attributes in your
specific column names and remove the following relationship:

@ManyToMany(fetch = FetchType.EAGER) 
    @JoinTable(
            name="user_role"


Bye

Vincenzo Caselli
http://www.censnet.it
gtalk: [EMAIL PROTECTED]
 



Puck wrote:
> 
> How can i switch from app_user to an other POJO (Person for example) to
> retrieve login informations?
> 
> Thanks
> Emilio
> 

-- 
View this message in context: 
http://www.nabble.com/Login-table-tp16763584s2369p16776095.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to