void initRequestAttributes(final PwmRequest pwmRequest) throws PwmUnrecoverableException { final ConfigurationReader configurationReader = pwmRequest.getContextManager().getConfigReader(); pwmRequest.setAttribute( PwmRequest.Attribute.PageTitle, LocaleHelper.getLocalizedMessage(Config.Title_ConfigManager, pwmRequest)); pwmRequest.setAttribute( PwmRequest.Attribute.ApplicationPath, pwmRequest.getPwmApplication().getPwmEnvironment().getApplicationPath().getAbsolutePath()); pwmRequest.setAttribute( PwmRequest.Attribute.ConfigFilename, configurationReader.getConfigFile().getAbsolutePath()); { final Date lastModifyTime = configurationReader.getStoredConfiguration().modifyTime(); final String output = lastModifyTime == null ? LocaleHelper.getLocalizedMessage(Display.Value_NotApplicable, pwmRequest) : PwmConstants.DEFAULT_DATETIME_FORMAT.format(lastModifyTime); pwmRequest.setAttribute(PwmRequest.Attribute.ConfigLastModified, output); } pwmRequest.setAttribute( PwmRequest.Attribute.ConfigHasPassword, LocaleHelper.booleanString( configurationReader.getStoredConfiguration().hasPassword(), pwmRequest.getLocale(), pwmRequest.getConfig())); }
private static void forwardToJsp(final PwmRequest pwmRequest) throws ServletException, PwmUnrecoverableException, IOException { final int persistentSeconds = figureMaxLoginSeconds(pwmRequest); final String time = new TimeDuration(persistentSeconds * 1000).asLongString(pwmRequest.getLocale()); final ConfigLoginHistory configLoginHistory = readConfigLoginHistory(pwmRequest); pwmRequest.setAttribute(PwmConstants.REQUEST_ATTR.ConfigLoginHistory, configLoginHistory); pwmRequest.setAttribute(PwmConstants.REQUEST_ATTR.ConfigPasswordRememberTime, time); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.CONFIG_MANAGER_LOGIN); }
private void showSummary(final PwmRequest pwmRequest) throws IOException, ServletException, PwmUnrecoverableException { final StoredConfigurationImpl storedConfiguration = readCurrentConfiguration(pwmRequest); final LinkedHashMap<String, Object> outputMap = new LinkedHashMap<>(storedConfiguration.toOutputMap(pwmRequest.getLocale())); pwmRequest.setAttribute(PwmRequest.Attribute.ConfigurationSummaryOutput, outputMap); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.CONFIG_MANAGER_EDITOR_SUMMARY); }
private void showPermissions(final PwmRequest pwmRequest) throws IOException, ServletException, PwmUnrecoverableException { final StoredConfigurationImpl storedConfiguration = readCurrentConfiguration(pwmRequest); LDAPPermissionCalculator ldapPermissionCalculator = new LDAPPermissionCalculator(storedConfiguration); pwmRequest.setAttribute( PwmRequest.Attribute.ConfigurationSummaryOutput, ldapPermissionCalculator); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.CONFIG_MANAGER_PERMISSIONS); }
private void calculateFutureDateFlags( final PwmRequest pwmRequest, GuestRegistrationBean guestRegistrationBean) { final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); final long maxValidDays = pwmRequest.getConfig().readSettingAsLong(PwmSetting.GUEST_MAX_VALID_DAYS); pwmRequest.setAttribute( PwmRequest.Attribute.GuestMaximumValidDays, String.valueOf(maxValidDays)); final String maxExpirationDate; { if (maxValidDays > 0) { long futureMS = maxValidDays * 24 * 60 * 60 * 1000; Date maxValidDate = new Date(new Date().getTime() + (futureMS)); maxExpirationDate = DATE_FORMAT.format(maxValidDate); } else { maxExpirationDate = ""; } } final String currentExpirationDate; { String selectedDate = guestRegistrationBean.getFormValues().get(HTTP_PARAM_EXPIRATION_DATE); if (selectedDate == null || selectedDate.isEmpty()) { Date currentDate = guestRegistrationBean.getUpdateUserExpirationDate(); if (currentDate == null) { currentExpirationDate = maxExpirationDate; } else { currentExpirationDate = DATE_FORMAT.format(currentDate); } } else { currentExpirationDate = DATE_FORMAT.format(new Date()); } } pwmRequest.setAttribute(PwmRequest.Attribute.GuestCurrentExpirationDate, currentExpirationDate); pwmRequest.setAttribute(PwmRequest.Attribute.GuestMaximumExpirationDate, maxExpirationDate); }
private void advanceToNextStep( final PwmRequest pwmRequest, final UpdateProfileBean updateProfileBean) throws IOException, ServletException, PwmUnrecoverableException, ChaiUnavailableException { final PwmApplication pwmApplication = pwmRequest.getPwmApplication(); final PwmSession pwmSession = pwmRequest.getPwmSession(); final String updateProfileAgreementText = pwmApplication .getConfig() .readSettingAsLocalizedString( PwmSetting.UPDATE_PROFILE_AGREEMENT_MESSAGE, pwmSession.getSessionStateBean().getLocale()); if (updateProfileAgreementText != null && updateProfileAgreementText.length() > 0) { if (!updateProfileBean.isAgreementPassed()) { final MacroMachine macroMachine = pwmRequest .getPwmSession() .getSessionManager() .getMacroMachine(pwmRequest.getPwmApplication()); final String expandedText = macroMachine.expandMacros(updateProfileAgreementText); pwmRequest.setAttribute(PwmConstants.REQUEST_ATTR.AgreementText, expandedText); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.UPDATE_ATTRIBUTES_AGREEMENT); return; } } final Map<FormConfiguration, String> formValues = updateProfileBean.getFormData(); if (!updateProfileBean.isFormSubmitted()) { final Map<FormConfiguration, String> formMap = updateProfileBean.getFormData(); final List<FormConfiguration> formFields = pwmApplication.getConfig().readSettingAsForm(PwmSetting.UPDATE_PROFILE_FORM); FormUtility.populateFormMapFromLdap( formFields, pwmRequest.getSessionLabel(), formMap, pwmSession.getSessionManager().getUserDataReader(pwmApplication)); forwardToForm(pwmRequest); return; } // make sure there is form data in the bean. if (updateProfileBean.getFormData() == null) { forwardToForm(pwmRequest); return; } // validate the form data. try { // verify form meets the form requirements verifyFormAttributes(pwmRequest, formValues, true); } catch (PwmOperationalException e) { LOGGER.error(pwmSession, e.getMessage()); pwmRequest.setResponseError(e.getErrorInformation()); forwardToForm(pwmRequest); return; } final boolean requireConfirmation = pwmApplication .getConfig() .readSettingAsBoolean(PwmSetting.UPDATE_PROFILE_SHOW_CONFIRMATION); if (requireConfirmation && !updateProfileBean.isConfirmationPassed()) { forwardToConfirmForm(pwmRequest); return; } try { // write the form values final ChaiUser theUser = pwmSession.getSessionManager().getActor(pwmApplication); doProfileUpdate(pwmRequest, formValues, theUser); pwmRequest.forwardToSuccessPage(Message.Success_UpdateProfile); return; } catch (PwmException e) { LOGGER.error(pwmSession, e.getMessage()); pwmRequest.setResponseError(e.getErrorInformation()); } catch (ChaiException e) { final ErrorInformation errorInformation = new ErrorInformation(PwmError.ERROR_UPDATE_ATTRS_FAILURE, e.toString()); LOGGER.error(pwmSession, errorInformation.toDebugStr()); pwmRequest.setResponseError(errorInformation); } forwardToForm(pwmRequest); }
private void advanceToNextStep( final PwmRequest pwmRequest, final UpdateAttributesProfile updateAttributesProfile, final UpdateProfileBean updateProfileBean) throws IOException, ServletException, PwmUnrecoverableException, ChaiUnavailableException { final PwmApplication pwmApplication = pwmRequest.getPwmApplication(); final PwmSession pwmSession = pwmRequest.getPwmSession(); final String updateProfileAgreementText = updateAttributesProfile.readSettingAsLocalizedString( PwmSetting.UPDATE_PROFILE_AGREEMENT_MESSAGE, pwmSession.getSessionStateBean().getLocale()); if (updateProfileAgreementText != null && updateProfileAgreementText.length() > 0) { if (!updateProfileBean.isAgreementPassed()) { final MacroMachine macroMachine = pwmRequest .getPwmSession() .getSessionManager() .getMacroMachine(pwmRequest.getPwmApplication()); final String expandedText = macroMachine.expandMacros(updateProfileAgreementText); pwmRequest.setAttribute(PwmRequest.Attribute.AgreementText, expandedText); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.UPDATE_ATTRIBUTES_AGREEMENT); return; } } // make sure there is form data in the bean. if (updateProfileBean.getFormData() == null) { updateProfileBean.setFormData(formDataFromLdap(pwmRequest, updateAttributesProfile)); forwardToForm(pwmRequest, updateAttributesProfile, updateProfileBean); return; } if (!updateProfileBean.isFormSubmitted()) { forwardToForm(pwmRequest, updateAttributesProfile, updateProfileBean); return; } // validate the form data. try { // verify form meets the form requirements final List<FormConfiguration> formFields = updateAttributesProfile.readSettingAsForm(PwmSetting.UPDATE_PROFILE_FORM); final Map<FormConfiguration, String> formValues = FormUtility.readFormValuesFromMap( updateProfileBean.getFormData(), formFields, pwmRequest.getLocale()); verifyFormAttributes(pwmRequest, formValues, true); } catch (PwmException e) { LOGGER.error(pwmSession, e.getMessage()); pwmRequest.setResponseError(e.getErrorInformation()); forwardToForm(pwmRequest, updateAttributesProfile, updateProfileBean); return; } final boolean requireConfirmation = updateAttributesProfile.readSettingAsBoolean(PwmSetting.UPDATE_PROFILE_SHOW_CONFIRMATION); if (requireConfirmation && !updateProfileBean.isConfirmationPassed()) { forwardToConfirmForm(pwmRequest, updateAttributesProfile, updateProfileBean); return; } final Set<TokenVerificationProgress.TokenChannel> requiredVerifications = determineTokenPhaseRequired(pwmRequest, updateProfileBean, updateAttributesProfile); if (requiredVerifications != null) { for (final TokenVerificationProgress.TokenChannel tokenChannel : requiredVerifications) { if (requiredVerifications.contains(tokenChannel)) { if (!updateProfileBean .getTokenVerificationProgress() .getIssuedTokens() .contains(tokenChannel)) { initializeToken(pwmRequest, updateProfileBean, tokenChannel); } if (!updateProfileBean .getTokenVerificationProgress() .getPassedTokens() .contains(tokenChannel)) { updateProfileBean.getTokenVerificationProgress().setPhase(tokenChannel); pwmRequest.forwardToJsp(PwmConstants.JSP_URL.UPDATE_ATTRIBUTES_ENTER_CODE); return; } } } } try { // write the form values final ChaiUser theUser = pwmSession.getSessionManager().getActor(pwmApplication); doProfileUpdate(pwmRequest, updateProfileBean.getFormData(), theUser); pwmRequest.getPwmResponse().forwardToSuccessPage(Message.Success_UpdateProfile); return; } catch (PwmException e) { LOGGER.error(pwmSession, e.getMessage()); pwmRequest.setResponseError(e.getErrorInformation()); } catch (ChaiException e) { final ErrorInformation errorInformation = new ErrorInformation(PwmError.ERROR_UPDATE_ATTRS_FAILURE, e.toString()); LOGGER.error(pwmSession, errorInformation.toDebugStr()); pwmRequest.setResponseError(errorInformation); } forwardToForm(pwmRequest, updateAttributesProfile, updateProfileBean); }