/*******************************************************************************
* 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.server;
import java.util.Enumeration;
import javax.servlet.http.HttpSession;
import org.eclipse.kura.web.AuthenticationManager;
import org.eclipse.kura.web.shared.GwtKuraErrorCode;
import org.eclipse.kura.web.shared.GwtKuraException;
import org.eclipse.kura.web.shared.model.GwtSettings;
import org.eclipse.kura.web.shared.model.GwtXSRFToken;
import org.eclipse.kura.web.shared.service.GwtSettingService;
public class GwtSettingServiceImpl extends OsgiRemoteServiceServlet implements GwtSettingService
{
private static final long serialVersionUID = -3422518194598042896L;
public void updateSettings(GwtXSRFToken xsrfToken, GwtSettings settings) throws GwtKuraException
{
checkXSRFToken(xsrfToken);
AuthenticationManager authMgr = AuthenticationManager.getInstance();
//
// verify the current password
boolean validCurrPwd = false;
validCurrPwd = authMgr.authenticate("admin", settings.getPasswordCurrent());
if (!validCurrPwd) {
throw new GwtKuraException(GwtKuraErrorCode.CURRENT_ADMIN_PASSWORD_DOES_NOT_MATCH);
}
//
// set the new password
/*try {
authMgr.changeAdminPassword(settings.getPasswordNew());
}
catch (SQLException e) {
throw new GwtKuraException(GwtKuraErrorCode.INTERNAL_ERROR, e);
}*/
}
@SuppressWarnings("rawtypes")
public void logout(GwtXSRFToken xsrfToken)
throws GwtKuraException
{
checkXSRFToken(xsrfToken);
HttpSession httpSession = this.getThreadLocalRequest().getSession();
Enumeration attrs = httpSession.getAttributeNames();
while (attrs.hasMoreElements()) {
String attr = (String) attrs.nextElement();
httpSession.removeAttribute(attr);
}
httpSession.setAttribute("logout", "true");
}
}