@Override protected String[] doLogin(HttpServletRequest request, HttpServletResponse response) throws Exception { long companyId = PortalUtil.getCompanyId(request); if (!isEnabled(companyId)) { return null; } String login = ParamUtil.getString(request, getLoginParam()); if (Validator.isNull(login)) { return null; } String password = ParamUtil.getString(request, getPasswordParam()); if (Validator.isNull(password)) { return null; } Company company = PortalUtil.getCompany(request); String authType = company.getAuthType(); long userId = 0; if (authType.equals(CompanyConstants.AUTH_TYPE_EA)) { userId = _userLocalService.getUserIdByEmailAddress(company.getCompanyId(), login); } else if (authType.equals(CompanyConstants.AUTH_TYPE_SN)) { userId = _userLocalService.getUserIdByScreenName(company.getCompanyId(), login); } else if (authType.equals(CompanyConstants.AUTH_TYPE_ID)) { userId = GetterUtil.getLong(login); } else { return null; } if (userId > 0) { User user = _userLocalService.getUserById(userId); String userPassword = user.getPassword(); if (!user.isPasswordEncrypted()) { userPassword = PasswordEncryptorUtil.encrypt(userPassword); } String encPassword = PasswordEncryptorUtil.encrypt(password, userPassword); if (!userPassword.equals(password) && !userPassword.equals(encPassword)) { return null; } } String[] credentials = new String[] {String.valueOf(userId), password, Boolean.FALSE.toString()}; return credentials; }
protected void testEncrypt(String algorithm, String plainTextPassword, String encryptedPassword) throws Exception { Assert.assertEquals( encryptedPassword, PasswordEncryptorUtil.encrypt(algorithm, plainTextPassword, encryptedPassword)); }
protected void testEncrypt(String algorithm) throws Exception { String password = "******"; String encrypted = PasswordEncryptorUtil.encrypt(algorithm, password, null); testEncrypt(algorithm, password, encrypted); }
protected void testEncryptFailure( String algorithm, String plainTextPassword, String encryptedPassword) { try { PasswordEncryptorUtil.encrypt(algorithm, plainTextPassword, encryptedPassword); Assert.fail(); } catch (Exception e) { } }
@Before public void setUp() { DigesterUtil digesterUtil = new DigesterUtil(); digesterUtil.setDigester(new DigesterImpl()); PasswordEncryptorUtil passwordEncryptorUtil = new PasswordEncryptorUtil(); CompositePasswordEncryptor compositePasswordEncryptor = new CompositePasswordEncryptor(); compositePasswordEncryptor.setDefaultPasswordEncryptor(new DefaultPasswordEncryptor()); List<PasswordEncryptor> passwordEncryptors = new ArrayList<>(); passwordEncryptors.add(new BCryptPasswordEncryptor()); passwordEncryptors.add(new CryptPasswordEncryptor()); passwordEncryptors.add(new NullPasswordEncryptor()); passwordEncryptors.add(new PBKDF2PasswordEncryptor()); passwordEncryptors.add(new SSHAPasswordEncryptor()); compositePasswordEncryptor.setPasswordEncryptors(passwordEncryptors); passwordEncryptorUtil.setPasswordEncryptor(compositePasswordEncryptor); }