/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.web; import java.util.Arrays; import org.eclipse.kura.crypto.CryptoService; import org.eclipse.kura.web.server.util.ServiceLocator; public class AuthenticationManager { private static AuthenticationManager s_instance; private char[] password; private String username; protected AuthenticationManager(String username, char[] psw) { this.username= username; this.password= psw; s_instance= this; } public static AuthenticationManager getInstance() { return s_instance; } protected void updateUsername(String username){ this.username= username; } protected void updatePassword(char[] psw){ password= psw; } public boolean authenticate(String username, String password) { try { CryptoService cryptoService = ServiceLocator.getInstance().getService(CryptoService.class); String sha1Password= cryptoService.sha1Hash(password); boolean isUsernameMatching= username.equals(this.username); boolean isPasswordMatching= Arrays.equals(sha1Password.toCharArray(), this.password); return isUsernameMatching && isPasswordMatching; }catch (Exception e) { } return false; } }