Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Spring MVC - Hibernate
PostPosted: Thu Mar 22, 2012 5:54 am 
Newbie

Joined: Thu Mar 22, 2012 5:44 am
Posts: 3
hi an alle,

ich folge grade diesem Tutorial :

http://mhimu.wordpress.com/2009/11/1...e-integration/

nun hab ich leider ein kleines Problem. Hibernate mapped die Objekte mit folgender Query in die Datenbank:

Hibernate: insert into Customer (email, firstName, lastName, USER_PWD, status, USER_ID) values (?, ?, ?, ?, ?, ?)

Ich bräuchte aber eine andere Reihenfolge. Die User_ID müsste zuerst gesetzt werden, damit ich sie als Salt für das Passwort verwenden kann. Hab ich da vielleicht nen Denkfehler .. oder weiss jemand einen Rat ?

danke


Top
 Profile  
 
 Post subject: Re: Spring MVC - Hibernate
PostPosted: Thu Mar 22, 2012 6:35 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 988
1. Der angegebene link ist unvollstaendig

Quote:
Ich bräuchte aber eine andere Reihenfolge. Die User_ID müsste zuerst gesetzt werden, damit ich sie als Salt für das Passwort verwenden kann. Hab ich da vielleicht nen Denkfehler .. oder weiss jemand einen Rat ?


Ich nehme an dass USER_ID der primary key von Customer ist, korrekt?

Den Wert des PrimaryKey d.h. den Identifier bekommst Du schon sobald du das Customer object persistierst.

Code:
session.persist(mycustomer);
Serializable id = hibernatesession.getIdentifier(mycustomer);


oder noch einfacher

Code:
Serializable id =  hibernatesession.save(mycustomer);


den id kannst Du dann als Salt für das Passwort verwenden:

Code:
mycustomer.passwd = berechnePasswortmitSalt(id);
hibernatesession.flush(); (oder direkt commit) // jetzt folgt ein insert, gefolgt von einem update der das korrekte Passwort einstellt


Top
 Profile  
 
 Post subject: Re: Spring MVC - Hibernate
PostPosted: Thu Mar 22, 2012 10:38 am 
Newbie

Joined: Thu Mar 22, 2012 5:44 am
Posts: 3
http://mhimu.wordpress.com/2009/11/16/s ... tegration/

ne .. User_Id ist nicht der Primary Key

naja hab grade in einem anderen forum gelesen .. dass die zugrundeliegende Architektur des Tutorials leicht angestaubt ist ... deswegen werd ich mir erstmal eine andere aufbauen ..

vielen dank für die tips ..


Top
 Profile  
 
 Post subject: Re: Spring MVC - Hibernate
PostPosted: Fri Mar 23, 2012 5:23 am 
Newbie

Joined: Thu Mar 22, 2012 5:44 am
Posts: 3
okay habe das jetzt folgendermaßen gelöst:

gehashed wird das Passwort beim setzen:

Code:
   public void setPassword(String password) throws NoSuchAlgorithmException
   {
       MessageDigest md;
       String out = "";
        
       md= MessageDigest.getInstance("SHA-512");
       md.update(password.getBytes());
      
       byte[] mb = md.digest();     
       for (int i = 0; i < mb.length; i++)
       {
               byte temp = mb[i];
               String s = Integer.toHexString(new Byte(temp));
               while (s.length() < 2)
               {
                  s = "0" + s;
               }
               s = s.substring(s.length() - 2);
               out += s;
       }             
      this.password = out;
   }


der Salt wird durch den Controller hinzugefügt ..

Code:
   public void addNew(Customer c) throws NoSuchAlgorithmException
   {
       Transaction tx = null;
            Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();
       try
       {
           tx = session.beginTransaction();
           String password = c.getPassword() + c.getUserId();
      c.setPassword(password);
           session.save(c);
           tx.commit();
       } catch (RuntimeException e) {
         if (tx != null && tx.isActive())
         {
           try
           {
              tx.rollback();
           } catch (HibernateException e1) {}
   
           throw e;
         }
       }
   }


somit ist also meinem Verständis nach -> sha512(sha512(pw)+salt)

Wäre nett wenn ich eure Meinung dazu hören könnte, ob das so okay/sicher ist ..

danke nochmals für den Anstoß


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.