package org.atricore.idbus.capabilities.sso.ui.page.selfsvcs.pwdreset;
import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.atricore.idbus.capabilities.sso.ui.internal.SSOIdPApplication;
import org.atricore.idbus.capabilities.sso.ui.internal.SSOWebSession;
import org.atricore.idbus.capabilities.sso.ui.page.BasePage;
import org.atricore.idbus.capabilities.sso.ui.page.selfsvcs.profile.ProfilePage;
import org.atricore.idbus.kernel.main.provisioning.domain.User;
import org.atricore.idbus.kernel.main.provisioning.exception.ProvisioningException;
import org.atricore.idbus.kernel.main.provisioning.exception.UserNotFoundException;
import org.atricore.idbus.kernel.main.provisioning.spi.request.AbstractProvisioningRequest;
import org.atricore.idbus.kernel.main.provisioning.spi.request.FindUserByUsernameRequest;
import org.atricore.idbus.kernel.main.provisioning.spi.request.ResetPasswordRequest;
import org.atricore.idbus.kernel.main.provisioning.spi.response.FindUserByUsernameResponse;
/**
* @author: sgonzalez@atriocore.com
* @date: 4/16/13
*/
public class VerifyPwdResetPage extends BasePage {
public VerifyPwdResetPage() throws Exception {
this(null);
}
public VerifyPwdResetPage(PageParameters parameters) throws Exception {
super(parameters);
SSOIdPApplication app = (SSOIdPApplication) getApplication();
//String username = parameters.get("username").toString();
String transactionId = parameters.get("transactionId").toString();
ResetPasswordRequest req = (ResetPasswordRequest) app.getProvisioningTarget().lookupTransactionRequest(transactionId);
FindUserByUsernameRequest userReq = new FindUserByUsernameRequest();
userReq.setUsername(req.getUser().getUserName());
FindUserByUsernameResponse userResp = app.getProvisioningTarget().findUserByUsername(userReq);
User user = userResp.getUser();
// This is a problem, we cannot registration this user again, should we notify the user ?
// TODO : Take it from the IdP/Connector ?!
String hashAlgorithm = app.getIdentityProvider().getProvisioningTarget().getHashAlgorithm();
String hashEncoding = app.getIdentityProvider().getProvisioningTarget().getHashEncoding();
VerifyPwdResetPanel verifyPwdResetPanel =
new VerifyPwdResetPanel("verifyPwdReset", user, hashAlgorithm, hashEncoding);
add(verifyPwdResetPanel);
}
@Override
protected void onInitialize() {
super.onInitialize();
SSOWebSession session = (SSOWebSession) getSession();
if (session.isAuthenticated())
throw new RestartResponseAtInterceptPageException(resolvePage("SS/PROFILE"));
}
}