@Before public void init() { userDetails = new UserDetails(); }
@Override public UserDetails doGetUserDetails(String username) { UserDetails user = new UserDetails(); user.setName(username); user.setEmail("foo@bar.com"); return user; } };
private void executeAuthenticate(String login) { when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setName("name"); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(login, PASSWORD), request, BASIC); }
@Test public void use_login_if_user_details_contains_no_name() { executeStartWithoutGroupSync(); when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setName(null); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC); assertThat(userIdentityAuthenticator.isAuthenticated()).isTrue(); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getName()).isEqualTo(LOGIN); verify(authenticationEvent).loginSuccess(request, LOGIN, Source.realm(BASIC, REALM_NAME)); }
@Test public void login_is_used_when_no_name_provided() { executeStartWithoutGroupSync(); when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setEmail("email"); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getProvider().getName()).isEqualTo("sonarqube"); verify(authenticationEvent).loginSuccess(request, LOGIN, Source.realm(BASIC, REALM_NAME)); }
@Override public UserDetails doGetUserDetails(Context context) { Preconditions.checkNotNull(context.getUsername()); Preconditions.checkNotNull(context.getRequest()); UserDetails user = new UserDetails(); user.setName(context.getUsername()); user.setEmail("foo@bar.com"); return user; } };
@Test public void fail_to_authenticate_when_external_authentication_fails() { executeStartWithoutGroupSync(); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(new UserDetails()); when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(false); expectedException.expect(authenticationException().from(Source.realm(BASIC, REALM_NAME)).withLogin(LOGIN).andNoPublicMessage()); expectedException.expectMessage("Realm returned authenticate=false"); try { underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC); } finally { verifyZeroInteractions(authenticationEvent); } }
@Test public void fail_to_authenticate_when_any_exception_is_thrown() { executeStartWithoutGroupSync(); String expectedMessage = "emulating exception in doAuthenticate"; doThrow(new IllegalArgumentException(expectedMessage)).when(authenticator).doAuthenticate(any(Authenticator.Context.class)); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(new UserDetails()); expectedException.expect(authenticationException().from(Source.realm(BASIC_TOKEN, REALM_NAME)).withLogin(LOGIN).andNoPublicMessage()); expectedException.expectMessage(expectedMessage); try { underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC_TOKEN); } finally { verifyZeroInteractions(authenticationEvent); } }
@Test public void authenticate_with_sonarqube_identity_provider() { executeStartWithoutGroupSync(); when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setName("name"); userDetails.setEmail("email"); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC); assertThat(userIdentityAuthenticator.isAuthenticated()).isTrue(); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getProvider().getKey()).isEqualTo("sonarqube"); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getProvider().getName()).isEqualTo("sonarqube"); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getProvider().getDisplay()).isNull(); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getProvider().isEnabled()).isTrue(); verify(authenticationEvent).loginSuccess(request, LOGIN, Source.realm(BASIC, REALM_NAME)); }
@Test public void authenticate() { executeStartWithoutGroupSync(); when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setName("name"); userDetails.setEmail("email"); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(LOGIN, PASSWORD), request, BASIC); assertThat(userIdentityAuthenticator.isAuthenticated()).isTrue(); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getExistingEmailStrategy()).isEqualTo(FORBID); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getLogin()).isEqualTo(LOGIN); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getProviderLogin()).isEqualTo(LOGIN); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getProviderId()).isNull(); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getName()).isEqualTo("name"); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().getEmail()).isEqualTo("email"); assertThat(userIdentityAuthenticator.getAuthenticatorParameters().getUserIdentity().shouldSyncGroups()).isFalse(); verify(authenticationEvent).loginSuccess(request, LOGIN, Source.realm(BASIC, REALM_NAME)); }
public UserDetails createNewUser(String username,String passwd,Set<Group> groups){ UserDetails u=new UserDetails(); u.setname(username); u.setGroups(groups); u.setPassword(createHash(passwd)); return u; } public String createHash(String data){ MessageDigest digest = MessageDigest.getInstance("SHA-256"); digest.update(password.getBytes()); byte byteData[] = digest.digest(); //convert bytes to hex chars StringBuffer sb = new StringBuffer(); for (int i = 0; i < byteData.length; i++) { sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); }
Gson gson = new GsonBuilder() .setExclusionStrategies(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes f) { return f.getDeclaringClass().equals(RealmObject.class); } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }) .registerTypeAdapter(Class.forName("com.wandertrails.realm.UserDetails"), new UserDetailsSerilizer()) .create(); Log.e("Json Value",gson.toJson(new UserDetails()));
Session session = sessionFactory.openSession(); session.beginTransaction(); UserDetails user = new UserDetails(); user.setUserName("Gaurav"); session.save(user); // Query is not guaranteed to be fired immediately. It may get fired here. session.getTransaction().commit(); // If it not executed in last statement then It is fired here. session.close();
Session session = sessionFactory.openSession(); session.beginTransaction(); UserDetails user = new UserDetails(); user.setUserName("Gaurav"); session.save(user); // Query is fired immediately as this statement is executed. session.getTransaction().commit(); session.close();
Session session = sessionFactory.openSession(); session.beginTransaction(); UserDetails user = new UserDetails(); user.setUserId(1); user.setUserName("Gaurav"); session.save(user); // Query is not fired here since id for object being referred by user is already available. No query need to be fired to find it. Data for user now available in first level cache but not in db. session.getTransaction().commit();// Query will be fired at this point and data for user will now also be available in DB session.close();
UserDetails mUserModel = new UserDetails(); mUserModel.setUserPhone(number); mUserModel.setUserName(name); mUserDetailList.add(mUserModel);
Configuration cfg = new Configuration(); cfg.configure("hibernate.cfg.xml"); SessionFactory sf = cfg.buildSessionFactory(); Session session = sf.OpenSession(); UserDetails ud = new UserDetails(); ud.setName("bdskbf"); ud.setId(23); Transaction tnx = session.beginTransaction(); session.save(ud); tnx.getTransaction.commit();
Session session = sessionFactory.openSession(); session.beginTransaction(); UserDetails user = new UserDetails(); user.setUserId(1); user.setUserName("Gaurav"); session.persist(user); // Query is not fired here.Object is made persistent. Data for user now available in first level cache but not in db. session.getTransaction().commit();// Query will be fired at this point and data for user will now also be available in DB session.close();
@Configuration public class AppConfig{ @Bean public UserDetails userDetails(){ return new UserDetails(); } @Bean public Address addressXXX(){ return new Address(); } @Bean public Address addressYYY(){ return new Address(); } }
UserDetails user = new UserDetails(); user.setUserId(1); user.setUserName("Neeraj"); user.setDescription("Great Coder"); user.setJoinedDate(new Date()); user.age = 24; Address addrNeeraj = new Address(); addrNeeraj.setCity("Pune"); addrNeeraj.setPinCode("411004"); addrNeeraj.setState("Maharashtra"); addrNeeraj.setStreet("KarveRoad"); user.setAddress(addrNeeraj); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.save(user); session.getTransaction().commit();