private void createAndStoreSession( final PublicKey publicKey, final String clientId, final USER user, final byte[] certificate) { final Date expiresAt = getExpiryDateCalculator().calculateFor(user); final PublicKeyWithMechanism publicKeyWithMechanism = new PublicKeyWithMechanism(publicKey); final SESSION session = getSessionStore().createTransient(); session.setUserId(user.getUserId()); session.setExpiresAt(expiresAt); session.setPublicKey(publicKeyWithMechanism.getValue()); session.setMechanism(publicKeyWithMechanism.getMechanism().getName()); session.setClientId(clientId); session.setCertificate(certificate); getSessionStore().save(session); }