diff options
| author | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2014-09-04 13:35:57 +0200 | 
|---|---|---|
| committer | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2014-09-04 13:35:57 +0200 | 
| commit | c9685e638ee5de0d049c8f58fd91848c2dc8a0ba (patch) | |
| tree | 110bcbb0463868a39eba0880336ff32cc545034e /id/ConfigWebTool | |
| parent | 33b76e7bb23d8772b3a2533aadd0c3313af4b29f (diff) | |
| parent | c109c1e86a228bd3b3ed49b97e182b3cd2136d00 (diff) | |
| download | moa-id-spss-c9685e638ee5de0d049c8f58fd91848c2dc8a0ba.tar.gz moa-id-spss-c9685e638ee5de0d049c8f58fd91848c2dc8a0ba.tar.bz2 moa-id-spss-c9685e638ee5de0d049c8f58fd91848c2dc8a0ba.zip | |
Merge branch 'merge' into moa-2.1-Snapshot
Diffstat (limited to 'id/ConfigWebTool')
21 files changed, 719 insertions, 32 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java index 567978cae..f549db9f3 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java @@ -60,6 +60,7 @@ public class Constants {  	public static final String SESSION_BKUSELECTIONTEMPLATE = "bkuSelectionTemplate";  	public static final String SESSION_SENDASSERTIONTEMPLATE = "sendAssertionTemplate";  	public static final String SESSION_SLTRANSFORMATION = "slTransformation"; +	public static final String SESSION_BPKENCRYPTIONDECRYPTION = "bPKEncDec";  	public static final String SESSION_SLOERROR = "sloerrormessage";  	public static final String SESSION_SLOSUCCESS = "slosuccessmessage"; @@ -115,4 +116,6 @@ public class Constants {          BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp);  	} +	 +	public static final long ONE_MINUTE_IN_MILLIS=60000;//millisecs  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticatedUser.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticatedUser.java index 036acf1f6..3bfe409c0 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticatedUser.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticatedUser.java @@ -42,6 +42,7 @@ public class AuthenticatedUser {  	private String institute;  	private String userName;  	private Date lastLogin; +	private Date sessionExpired;   	private boolean onlyBusinessService = false;  	private String businessServiceType; @@ -54,7 +55,7 @@ public class AuthenticatedUser {  	} -	public static AuthenticatedUser generateDefaultUser() { +	public static AuthenticatedUser generateDefaultUser(Date sessionExpired) {  		AuthenticatedUser user = new AuthenticatedUser();		  		user.familyName = "TestUser"; @@ -67,12 +68,13 @@ public class AuthenticatedUser {  		user.isMandateUser = false;  		user.isPVP2Login = false;  		user.lastLogin = new Date(); +		user.sessionExpired = sessionExpired;  		return user;  	}  	public static AuthenticatedUser generateUserRequestUser(UserDatabaseFrom form,  -			String nameID, String nameIDFormat) { +			String nameID, String nameIDFormat, Date sessionExpired) {  		AuthenticatedUser user = new AuthenticatedUser();		  		user.familyName = form.getFamilyName(); @@ -85,6 +87,7 @@ public class AuthenticatedUser {  		user.isMandateUser = form.isIsmandateuser();  		user.isPVP2Login = form.isPVPGenerated();  		user.lastLogin = new Date(); +		user.sessionExpired = sessionExpired;  		user.nameID = nameID;  		user.nameIDFormat = nameIDFormat; @@ -93,7 +96,7 @@ public class AuthenticatedUser {  	}  	public AuthenticatedUser(UserDatabase userdb, boolean isAuthenticated, boolean isMandateUser,  -			boolean isPVP2Login, String nameID, String nameIDFormat) { +			boolean isPVP2Login, String nameID, String nameIDFormat, Date sessionExpired) {  		this.familyName = userdb.getFamilyname();  		this.givenName = userdb.getGivenname(); @@ -105,6 +108,7 @@ public class AuthenticatedUser {  		this.isMandateUser = isMandateUser;  		this.isPVP2Login = isPVP2Login;  		this.lastLogin = new Date(); +		this.sessionExpired = sessionExpired;  		this.nameID = nameID;  		this.nameIDFormat = nameIDFormat; @@ -250,10 +254,13 @@ public class AuthenticatedUser {  	public String getNameIDFormat() {  		return nameIDFormat;  	} -	 -	 -	 -	 -	 + +	/** +	 * @return the sessionExpired +	 */ +	public Date getSessionExpired() { +		return sessionExpired; +	} +  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticationManager.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticationManager.java index 6d3afffc9..58142b398 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticationManager.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/AuthenticationManager.java @@ -22,6 +22,9 @@   */  package at.gv.egovernment.moa.id.configuration.auth; +import java.util.Date; +import java.util.Iterator; +  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; @@ -81,4 +84,16 @@ public class AuthenticationManager {  		activeUsers.removeUser(authUser.getNameID());  	} +	 +	public void removeAllUsersAfterTimeOut() { +		Iterator<AuthenticatedUser> expiredUsers = activeUsers.getUserWithSessionTimeOut(new Date()); +		while (expiredUsers.hasNext()) { +			AuthenticatedUser user = expiredUsers.next(); +			activeUsers.removeUser(user.getNameID()); +			log.info("LogOut user with ID" + user.getNameID() + " after SessionTimeOut."); +			 +		} +		 +	} +  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/IActiveUserStorage.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/IActiveUserStorage.java index c52fee140..80730c6e0 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/IActiveUserStorage.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/IActiveUserStorage.java @@ -22,6 +22,9 @@   */  package at.gv.egovernment.moa.id.configuration.auth; +import java.util.Date; +import java.util.Iterator; +  /**   * @author tlenz   * @@ -31,5 +34,6 @@ public interface IActiveUserStorage {  	public AuthenticatedUser getUser(String nameID);  	public void setUser(String nameID, AuthenticatedUser authUser);  	public void removeUser(String nameID); +	public Iterator<AuthenticatedUser> getUserWithSessionTimeOut(Date date);  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/MemoryActiveUserStorageImpl.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/MemoryActiveUserStorageImpl.java index 145da2c35..186a2b931 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/MemoryActiveUserStorageImpl.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/MemoryActiveUserStorageImpl.java @@ -22,7 +22,12 @@   */  package at.gv.egovernment.moa.id.configuration.auth; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date;  import java.util.HashMap; +import java.util.Iterator; +import java.util.List;  import java.util.Map;  /** @@ -68,4 +73,18 @@ public class MemoryActiveUserStorageImpl implements IActiveUserStorage {  	} +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.auth.IActiveUserStorage#getUserWithSessionTimeOut(java.util.Date) +	 */ +	@Override +	public Iterator<AuthenticatedUser> getUserWithSessionTimeOut(Date date) { +		List<AuthenticatedUser> expiredUsers =  new ArrayList<AuthenticatedUser>(); +		for (AuthenticatedUser user : store.values()) { +			if (date.after(user.getSessionExpired())) +				expiredUsers.add(user); +			 +		}				 +		return expiredUsers.iterator(); +	} +  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/servlets/SLOBasicServlet.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/servlets/SLOBasicServlet.java index 38c858918..dfcde4624 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/servlets/SLOBasicServlet.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/servlets/SLOBasicServlet.java @@ -127,7 +127,6 @@ public class SLOBasicServlet extends HttpServlet {  			HttpSession session = request.getSession(false);  			if (session != null)  				session.invalidate(); -			  			return createSLOResponse(sloReq, StatusCode.SUCCESS_URI, request);  		} else { @@ -198,11 +197,20 @@ public class SLOBasicServlet extends HttpServlet {  		} else if (sloResp.getStatus().getStatusCode().getValue().equals(StatusCode.SUCCESS_URI)) { -			log.info("Single LogOut process complete."); -			request.getSession().setAttribute(Constants.SESSION_SLOSUCCESS,  -					LanguageHelper.getErrorString("webpages.slo.success", request)); - +			if (sloResp.getStatus().getStatusCode().getStatusCode() != null &&  +					!sloResp.getStatus().getStatusCode().getStatusCode().equals(StatusCode.PARTIAL_LOGOUT_URI)) {			 +				log.info("Single LogOut process complete."); +				request.getSession().setAttribute(Constants.SESSION_SLOSUCCESS,  +						LanguageHelper.getErrorString("webpages.slo.success", request)); +				 +			} else { +				log.warn("Single LogOut process is not completed."); +				request.getSession().setAttribute(Constants.SESSION_SLOERROR,  +						LanguageHelper.getErrorString("webpages.slo.error", request)); +				 +			} +			  		} else {  			log.warn("Single LogOut response sends an unsupported statustype " + sloResp.getStatus().getStatusCode().getValue());  			request.getSession().setAttribute(Constants.SESSION_SLOERROR,  diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java index bea6220ff..957479b29 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java @@ -457,6 +457,11 @@ public class ConfigurationProvider {  	} +	public String getConfigurationEncryptionKey() { +		return props.getProperty("general.moaconfig.key"); +				 +	} +	  	private void initalPVP2Login() throws ConfigurationException {  		try { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OABPKEncryption.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OABPKEncryption.java new file mode 100644 index 000000000..6782987e5 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OABPKEncryption.java @@ -0,0 +1,370 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.configuration.data.oa; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang.SerializationUtils; +import org.apache.log4j.Logger; + +import at.gv.egovernment.moa.id.auth.exception.BuildException; +import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; +import at.gv.egovernment.moa.id.commons.db.dao.config.BPKDecryption; +import at.gv.egovernment.moa.id.commons.db.dao.config.EncBPKInformation; +import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; +import at.gv.egovernment.moa.id.commons.validation.ValidationHelper; +import at.gv.egovernment.moa.id.config.auth.data.BPKDecryptionParameters; +import at.gv.egovernment.moa.id.configuration.Constants; +import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; +import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.id.configuration.utils.ConfigurationEncryptionUtils; +import at.gv.egovernment.moa.id.configuration.validation.oa.OAFileUploadValidation; +import at.gv.egovernment.moa.id.data.EncryptedData; +import at.gv.egovernment.moa.util.MiscUtil; + +/** + * @author tlenz + * + */ +public class OABPKEncryption implements IOnlineApplicationData { + +	private static final Logger log = Logger.getLogger(OABPKEncryption.class); +	 +	private static final String MODULENAME = "bPKEncryptionDecryption"; +	 +	private String keyStorePassword = null; +	private String keyAlias = null; +	private String keyPassword = null; +	 +	private Map<String, byte[]> keyStoreForm = new HashMap<String, byte[]>(); +	 +	private List<File> keyStoreFileUpload = null; +	private List<String> keyStoreFileUploadContentType = null; +	private List<String> keyStoreFileUploadFileName  = new ArrayList<String>();; +	private boolean deletekeyStore = false; +	private boolean validationError = false; +	 +	 +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName() +	 */ +	@Override +	public String getName() { +		// TODO Auto-generated method stub +		return MODULENAME; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#parse(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> parse(OnlineApplication dbOA, +			AuthenticatedUser authUser, HttpServletRequest request) { +		AuthComponentOA oaAuth = dbOA.getAuthComponentOA(); +		if (oaAuth != null) { +			EncBPKInformation bPKEncDec = oaAuth.getEncBPKInformation(); +			if (bPKEncDec != null) { +				BPKDecryption bPKDec = bPKEncDec.getBPKDecryption(); +				if (bPKDec != null) { +					keyAlias = bPKDec.getKeyAlias(); +					if (bPKDec.getKeyStoreFileName() != null) +						keyStoreFileUploadFileName.add(bPKDec.getKeyStoreFileName()); +					 +				}				 +			}						 +		} +				 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#store(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public String store(OnlineApplication dbOA, AuthenticatedUser authUser, +			HttpServletRequest request) { +		AuthComponentOA oaAuth = dbOA.getAuthComponentOA(); +		if (oaAuth == null) { +			oaAuth = new AuthComponentOA(); +			dbOA.setAuthComponentOA(oaAuth); +			 +		}		 +		EncBPKInformation bPKEncDec = oaAuth.getEncBPKInformation(); +		if (bPKEncDec == null) { +			bPKEncDec = new EncBPKInformation(); +			oaAuth.setEncBPKInformation(bPKEncDec); +			 +		} +				 +		BPKDecryption bPKDec = bPKEncDec.getBPKDecryption(); +		if (bPKDec == null) { +			bPKDec = new BPKDecryption(); +			bPKEncDec.setBPKDecryption(bPKDec); +		} +		 +		if (isDeletekeyStore()) { +			bPKDec.setIv(null); +			bPKDec.setKeyAlias(null); +			bPKDec.setKeyInformation(null); +			bPKDec.setKeyStoreFileName(null); +			 +		} +		 +		BPKDecryptionParameters keyInfo = new BPKDecryptionParameters(); +		if (keyStoreForm != null && keyStoreForm.size() > 0) {			 +			keyInfo.setKeyAlias(keyAlias); +			keyInfo.setKeyPassword(keyPassword); +			keyInfo.setKeyStorePassword(keyStorePassword); +			 +            Iterator<String> interator = keyStoreForm.keySet().iterator(); +            bPKDec.setKeyStoreFileName(interator.next()); +            bPKDec.setKeyAlias(keyAlias);             +            keyInfo.setKeyStore(keyStoreForm.get( +                    bPKDec.getKeyStoreFileName())); + +            //encrypt key information +            byte[] serKeyInfo = SerializationUtils.serialize(keyInfo);             +            try { +				EncryptedData encryptkeyInfo = ConfigurationEncryptionUtils.getInstance().encrypt(serKeyInfo); +				bPKDec.setIv(encryptkeyInfo.getIv()); +				bPKDec.setKeyInformation(encryptkeyInfo.getEncData());				 +				 +			} catch (BuildException e) { +				log.error("Configuration encryption FAILED.", e); +				return LanguageHelper.getErrorString("error.general.text", request); +				 +			} +		} +		 +		request.getSession().setAttribute(Constants.SESSION_BPKENCRYPTIONDECRYPTION, null); +		 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#validate(at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> validate(OAGeneralConfig general, +			AuthenticatedUser authUser, HttpServletRequest request) { +		HttpSession session = request.getSession(); +		List<String> errors = new ArrayList<String>();		 +		 +		String check = null; +		 +		OAFileUploadValidation valiator_fileUpload = new OAFileUploadValidation();		 +        //validate BKU-selection template +        List<String> templateError = valiator_fileUpload.validate(getKeyStoreFileUploadFileName() +                , getKeyStoreFileUpload(), "validation.bPKDec.keyStore", keyStoreForm, request); +        if (templateError != null && templateError.size() == 0) { +            if (keyStoreForm != null && keyStoreForm.size() > 0) { +                session.setAttribute(Constants.SESSION_BPKENCRYPTIONDECRYPTION, keyStoreForm); +                 +            } else +            	keyStoreForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_BPKENCRYPTIONDECRYPTION); + +        } else { +            errors.addAll(templateError); + +        } +         +        if (keyStoreForm != null && keyStoreForm.size() > 0) { +    		check = getKeyStorePassword(); +    		if (MiscUtil.isEmpty(check)) { +    			log.info("bPK decryption keystore password is empty"); +    			errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyStorePassword.empty", request)); +    			 +    		} else { +    			if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { +    				log.warn("bPK decryption keystore password contains potentail XSS characters: " + check); +    				errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyStorePassword.valid",  +    						new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request )); +    				 +    			}			 +    		} +    		 +    		check = getKeyAlias(); +    		if (MiscUtil.isEmpty(check)) { +    			log.info("bPK decryption key alias is empty"); +    			errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyAlias.empty", request)); +    			 +    		} else { +    			if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { +    				log.warn("bPK decryption key alias contains potentail XSS characters: " + check); +    				errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyAlias.valid",  +    						new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request )); +    				 +    			}			 +    		} +    		 +    		check = getKeyPassword(); +    		if (MiscUtil.isNotEmpty(check)) { +    			if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { +    				log.warn("bPK decryption key password contains potentail XSS characters: " + check); +    				errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyPassword.valid",  +    						new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request )); +    				 +    			}			 +    		} +        	        	 +        	BPKDecryptionParameters keyInfo = new BPKDecryptionParameters(); +        	keyInfo.setKeyAlias(keyAlias); +        	keyInfo.setKeyPassword(keyPassword); +        	keyInfo.setKeyStorePassword(keyStorePassword);    			 +        	Iterator<String> interator = keyStoreForm.keySet().iterator(); +        	String fileName = interator.next();             +        	keyInfo.setKeyStore(keyStoreForm.get(fileName));                 +        	if (keyInfo.getPrivateKey() == null) { +        		log.info("Open keyStore FAILED."); +        		errors.add(LanguageHelper.getErrorString("validation.bPKDec.keyStore.file.valid", request)); +        	 +        	}        	 +        } +		 +        if (errors.size() > 0) { +        	validationError = true; +        	 +        } +         +		return errors; +		 +	} + +	/** +	 * @return the keyStorePassword +	 */ +	public String getKeyStorePassword() { +		return keyStorePassword; +	} + +	/** +	 * @param keyStorePassword the keyStorePassword to set +	 */ +	public void setKeyStorePassword(String keyStorePassword) { +		this.keyStorePassword = keyStorePassword; +	} + +	/** +	 * @return the keyAlias +	 */ +	public String getKeyAlias() { +		return keyAlias; +	} + +	/** +	 * @param keyAlias the keyAlias to set +	 */ +	public void setKeyAlias(String keyAlias) { +		this.keyAlias = keyAlias; +	} + +	/** +	 * @return the keyPassword +	 */ +	public String getKeyPassword() { +		return keyPassword; +	} + +	/** +	 * @param keyPassword the keyPassword to set +	 */ +	public void setKeyPassword(String keyPassword) { +		this.keyPassword = keyPassword; +	} + +	/** +	 * @return the keyStoreFileUpload +	 */ +	public List<File> getKeyStoreFileUpload() { +		return keyStoreFileUpload; +	} + +	/** +	 * @param keyStoreFileUpload the keyStoreFileUpload to set +	 */ +	public void setKeyStoreFileUpload(List<File> keyStoreFileUpload) { +		this.keyStoreFileUpload = keyStoreFileUpload; +	} + +	/** +	 * @return the keyStoreFileUploadContentType +	 */ +	public List<String> getKeyStoreFileUploadContentType() { +		return keyStoreFileUploadContentType; +	} + +	/** +	 * @param keyStoreFileUploadContentType the keyStoreFileUploadContentType to set +	 */ +	public void setKeyStoreFileUploadContentType( +			List<String> keyStoreFileUploadContentType) { +		this.keyStoreFileUploadContentType = keyStoreFileUploadContentType; +	} + +	/** +	 * @return the keyStoreFileUploadFileName +	 */ +	public List<String> getKeyStoreFileUploadFileName() { +		return keyStoreFileUploadFileName; +	} + +	/** +	 * @param keyStoreFileUploadFileName the keyStoreFileUploadFileName to set +	 */ +	public void setKeyStoreFileUploadFileName( +			List<String> keyStoreFileUploadFileName) { +		this.keyStoreFileUploadFileName = keyStoreFileUploadFileName; +	} + +	/** +	 * @return the deletekeyStore +	 */ +	public boolean isDeletekeyStore() { +		return deletekeyStore; +	} + +	/** +	 * @param deletekeyStore the deletekeyStore to set +	 */ +	public void setDeletekeyStore(boolean deletekeyStore) { +		this.deletekeyStore = deletekeyStore; +	} + +	/** +	 * @return the validationError +	 */ +	public boolean isValidationError() { +		return validationError; +	} +	 +	 + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java index e988cc292..150cd959e 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java @@ -82,9 +82,7 @@ public class OATargetConfiguration implements IOnlineApplicationData {  	 */  	@Override  	public List<String> parse(OnlineApplication dbOA, -			AuthenticatedUser authUser, HttpServletRequest request) { -        subTargetSet = MiscUtil.isNotEmpty(getTarget_subsector()); -		 +			AuthenticatedUser authUser, HttpServletRequest request) {		  		String target_full = dbOA.getTarget();  		if (MiscUtil.isNotEmpty(target_full)) {  			if (TargetValidator.isValidTarget(target_full)) { @@ -95,8 +93,10 @@ public class OATargetConfiguration implements IOnlineApplicationData {  				if (TargetValidator.isValidTarget(target_split[0])) {  					target = target_split[0]; -					if (target_split.length > 1) +					if (target_split.length > 1) {  						target_subsector = target_split[1]; +						subTargetSet = true; +					}  				} else {  					target = ""; @@ -367,4 +367,22 @@ public class OATargetConfiguration implements IOnlineApplicationData {      public void setDeaktivededBusinessService(boolean deaktivededBusinessService) {          this.deaktivededBusinessService = deaktivededBusinessService;      } + + +	/** +	 * @return the subTargetSet +	 */ +	public boolean isSubTargetSet() { +		return subTargetSet; +	} + + +	/** +	 * @param subTargetSet the subTargetSet to set +	 */ +	public void setSubTargetSet(boolean subTargetSet) { +		this.subTargetSet = subTargetSet; +	} +     +      } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java index 1f631afea..d13696d51 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java @@ -24,6 +24,7 @@ package at.gv.egovernment.moa.id.configuration.filter;  import java.io.IOException;  import java.util.ArrayList; +import java.util.Date;  import java.util.StringTokenizer;  import java.util.regex.Pattern; @@ -153,8 +154,11 @@ public class AuthenticationFilter implements Filter{  				log.warn("Authentication is deaktivated. Dummy authentication-information are used!");  				if (authuser == null) { - -					authuser = AuthenticatedUser.generateDefaultUser(); +					int sessionTimeOut = session.getMaxInactiveInterval(); +					Date sessionExpired = new Date(new Date().getTime() +  +							(sessionTimeOut * Constants.ONE_MINUTE_IN_MILLIS));  +					 +					authuser = AuthenticatedUser.generateDefaultUser(sessionExpired);  					authManager.setActiveUser(authuser);  					//authuser = new AuthenticatedUser(1, "Max", "TestUser", true, false); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java index cd6c699b9..dc97dd2c8 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java @@ -23,6 +23,7 @@  package at.gv.egovernment.moa.id.configuration.helper;  import java.util.ArrayList; +import java.util.Date;  import java.util.List;  import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; @@ -88,7 +89,8 @@ public class FormDataHelper {  			userlist.add(new AuthenticatedUser(dbuser,   					dbuser.isIsActive(),   					ismandate, -					false, null, null)); +					false, null, null, new Date()) +					);  		}  		return userlist;  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java index 9509f9712..3d96cc1e5 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java @@ -57,6 +57,9 @@ public class EditOAAction extends BasicOAAction {  		OAAuthenticationData authOA = new OAAuthenticationData();  		formList.put(authOA.getName(), authOA); +		OABPKEncryption bPKEncDec = new OABPKEncryption(); +		formList.put(bPKEncDec.getName(), bPKEncDec); +		  		OASSOConfig ssoOA = new OASSOConfig();  		formList.put(ssoOA.getName(), ssoOA); @@ -472,4 +475,19 @@ public class EditOAAction extends BasicOAAction {  		formList.put(formOA.getName(), formOA);  	} +	/** +	 * @return the bPK encryption/decryption form +	 */ +	public OABPKEncryption getBPKEncDecr() { +		return (OABPKEncryption) formList.get(new OABPKEncryption().getName()); +	} + +	/** +	 * @param bPK encryption/decryption form +	 *            the bPK encryption/decryption form to set +	 */ +	public void setBPKEncDecr(OABPKEncryption formOA) { +		formList.put(formOA.getName(), formOA); +	} +	  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java index 4762f1518..f4a3d0c75 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java @@ -215,12 +215,17 @@ public class IndexAction extends BasicAction {  			if (dbuser.isIsMandateUser() != null)  				ismandateuser = dbuser.isIsMandateUser(); +			int sessionTimeOut = session.getMaxInactiveInterval(); +			Date sessionExpired = new Date(new Date().getTime() +  +					(sessionTimeOut * Constants.ONE_MINUTE_IN_MILLIS)); +			  			AuthenticatedUser authuser = new AuthenticatedUser(dbuser,   					true,   					ismandateuser,  					false,  					dbuser.getHjid()+"dbID", -					"username/password"); +					"username/password", +					sessionExpired);  			//store user as authenticated user  			AuthenticationManager authManager = AuthenticationManager.getInstance(); @@ -390,6 +395,10 @@ public class IndexAction extends BasicAction {  						String bpkwbpk = nameID.getNameQualifier() + "+" + nameID.getValue(); +						int sessionTimeOut = session.getMaxInactiveInterval(); +						Date sessionExpired = new Date(new Date().getTime() +  +								(sessionTimeOut * Constants.ONE_MINUTE_IN_MILLIS)); +						  						//search user  						UserDatabase dbuser = ConfigurationDBRead.getUserWithUserBPKWBPK(bpkwbpk);  						if (dbuser == null) { @@ -434,7 +443,8 @@ public class IndexAction extends BasicAction {  							//create AuthUser data element  							authUser = AuthenticatedUser.generateUserRequestUser(user,  									nameID.getValue(),  -									nameID.getFormat()); +									nameID.getFormat(), +									sessionExpired);  							//store user as authenticated user  							AuthenticationManager authManager = AuthenticationManager.getInstance(); @@ -464,7 +474,8 @@ public class IndexAction extends BasicAction {  											dbuser.isIsMandateUser(),  											true,  											nameID.getValue(), -											nameID.getFormat()); +											nameID.getFormat(), +											sessionExpired);  									//store user as authenticated user  									AuthenticationManager authManager = AuthenticationManager.getInstance(); @@ -491,7 +502,8 @@ public class IndexAction extends BasicAction {  									ismandateuser,  									true,  									nameID.getValue(), -									nameID.getFormat()); +									nameID.getFormat(), +									sessionExpired);  							//store user as authenticated user  							AuthenticationManager authManager = AuthenticationManager.getInstance(); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/ConfigurationEncryptionUtils.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/ConfigurationEncryptionUtils.java new file mode 100644 index 000000000..08cd7c59d --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/ConfigurationEncryptionUtils.java @@ -0,0 +1,79 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.configuration.utils; + +import at.gv.egovernment.moa.id.auth.exception.DatabaseEncryptionException; +import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider; +import at.gv.egovernment.moa.id.util.AbstractEncrytionUtil; +import at.gv.egovernment.moa.logging.Logger; + +/** + * @author tlenz + * + */ +public class ConfigurationEncryptionUtils extends AbstractEncrytionUtil { + +	private static ConfigurationEncryptionUtils instance = null;	 +	private static String key = null; +	 +	public static ConfigurationEncryptionUtils getInstance() { +		if (instance == null) { +			try { +				key = ConfigurationProvider.getInstance().getConfigurationEncryptionKey(); +				instance =  new ConfigurationEncryptionUtils(); +								 +			} catch (Exception e) { +				Logger.warn("MOAConfiguration encryption initialization FAILED.", e); +				 +			}					 +		} +		return instance; +	} +	 +	/** +	 * @throws DatabaseEncryptionException +	 */ +	public ConfigurationEncryptionUtils() throws DatabaseEncryptionException { +		super(); +		 +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.util.AbstractEncrytionUtil#getSalt() +	 */ +	@Override +	protected String getSalt() { +		return "Configuration-Salt"; +		 +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.util.AbstractEncrytionUtil#getKey() +	 */ +	@Override +	protected String getKey() { +		return key; +		 +	} + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java index 9ec8db858..a75f8307d 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java @@ -31,6 +31,7 @@ import org.apache.log4j.Logger;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;  import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; +import at.gv.egovernment.moa.id.configuration.auth.AuthenticationManager;  import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider;  import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException;  import at.gv.egovernment.moa.id.configuration.helper.DateTimeHelper; @@ -40,13 +41,14 @@ public class UserRequestCleaner implements Runnable {  	private static final Logger log = Logger.getLogger(UserRequestCleaner.class); -	private static final long SESSION_CLEANUP_INTERVAL = 60 * 60; // 60 min +	private static final long SESSION_CLEANUP_INTERVAL = 5 * 60; // 5 min  	public void run() {  		 while (true) {  			 try {  				ConfigurationProvider config = ConfigurationProvider.getInstance(); +				//clean up user request storage  				List<UserDatabase> userrequests = ConfigurationDBRead.getAllOpenUsersRequests();  				if (userrequests != null) {  					Calendar cal = Calendar.getInstance(); @@ -63,6 +65,9 @@ public class UserRequestCleaner implements Runnable {  					}					  				} +				 +				//clean up active user storage +				AuthenticationManager.getInstance().removeAllUsersAfterTimeOut();  				Thread.sleep(SESSION_CLEANUP_INTERVAL * 1000); diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties index 2c71d86a5..39bfcd36b 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties @@ -8,8 +8,8 @@ config.04=OpenSAML (PVP2 Login) can not be initialized  config.05=Configuration file not defined  error.title=Fehler: -error.login.internal=W\u00E4hrend der Verarbeitung ist ein interner Fehler auftetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator. -error.general.text=W\u00E4hrend der Verarbeitung ist ein interner Fehler auftetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator. +error.login.internal=W\u00E4hrend der Verarbeitung ist ein interner Fehler aufgetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator. +error.general.text=W\u00E4hrend der Verarbeitung ist ein interner Fehler aufgetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator.  errors.listOAs.noOA=Es wurden keine Online-Applikationen in der Datenbank gefunden.  errors.listIDPs.noIDP=Es wurden kein IdentityProvider f\u00FCr Interfederation in der Datenbank gefunden.  errors.edit.oa.oaid=Es wurde keine g\u00FCtige Online-Applikations-ID \u00FCbergeben. @@ -200,6 +200,15 @@ webpages.oaconfig.general.bku.sendassertion.header=Send-Assertion Template  webpages.oaconfig.general.bku.sendassertion.filename=Dateiname  webpages.oaconfig.general.bku.sendassertion.upload=Neues Template hochladen +webpages.oaconfig.bPKEncDec.header=Fremd-bPK Konfiguration +webpages.oaconfig.bPKEncDec.keystore.header=KeyStore Konfiguration +webpages.oaconfig.bPKEncDec.filename=Dateiname +webpages.oaconfig.bPKEncDec.delete=L\u00F6schen +webpages.oaconfig.bPKEncDec.upload=KeyStore hochladen +webpages.oaconfig.bPKEncDec.keyStorePassword=KeyStore Password +webpages.oaconfig.bPKEncDec.keyAlias=Schl\u00FCsselname +webpages.oaconfig.bPKEncDec.keyPassword=Schl\u00FCsselpassword +  webpages.oaconfig.general.identification=Eindeutiger Identifikatior (PublicURLPrefix)  webpages.oaconfig.general.mandate.header=Vollmachten  webpages.oaconfig.general.mandate.profiles=Profile @@ -449,6 +458,15 @@ validation.general.sendassertion.file.valid=Das Send-Assertion Templates konnte  validation.general.sendassertion.file.selected=Es kann nur EIN Send-Assertion Template angegeben werden.  validation.general.testcredentials.oid.valid=Die Testdaten OID {0} ist ung\u00FCltig. +validation.bPKDec.keyStorePassword.empty=Das Password f\u00FCr den KeyStore ist leer. +validation.bPKDec.keyStorePassword.valid=Das Password f\u00FCr den KeyStore enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.bPKDec.keyAlias.empty=Der Schl\u00FCsselname ist leer. +validation.bPKDec.keyAlias.valid=Der Schl\u00FCsselname enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.bPKDec.keyPassword.empty=Das Password f\u00FCr den privaten Schl\u00FCssel ist leer. +validation.bPKDec.keyPassword.valid=Das Password f\u00FCr den privaten Schl\u00FCssel enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.bPKDec.keyStore.filename.valid=Der Dateiname des KeyStores enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.bPKDec.keyStore.file.valid=Der KeyStore konnte nicht geladen oder ge\u00F6ffnet werden. Eventuell sind das Passwort oder der Schl\u00FCsselname nicht korrekt. +validation.bPKDec.keyStore.file.selected=Es kann nur EIN KeyStore angegeben werden.  validation.stork.cpeps.cc=CPEPS L\u00E4ndercode folgt nicht ISO 3166-2  validation.stork.cpeps.empty=CPEPS Konfiguration ist unvollst\u00E4ndig diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties index a494ef089..22b063099 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties @@ -196,12 +196,21 @@ webpages.oaconfig.general.testing.oids=Use special test credential OIDs  webpages.oaconfig.general.bku.delete=Remove  webpages.oaconfig.general.bku.bkuselection.header=CCE-Selection Template -webpages.oaconfig.general.bku.bkuselection.filename=File name +webpages.oaconfig.general.bku.bkuselection.filename=Filename  webpages.oaconfig.general.bku.bkuselection.upload=Upload new template  webpages.oaconfig.general.bku.sendassertion.header=Send-Assertion Template -webpages.oaconfig.general.bku.sendassertion.filename=File name +webpages.oaconfig.general.bku.sendassertion.filename=Filename  webpages.oaconfig.general.bku.sendassertion.upload=Upload new template +webpages.oaconfig.bPKEncDec.header=Foreign-bPK Configuration +webpages.oaconfig.bPKEncDec.keystore.header=Keystore configuration +webpages.oaconfig.bPKEncDec.filename=Filename +webpages.oaconfig.bPKEncDec.delete=Remove +webpages.oaconfig.bPKEncDec.upload=Upload new keystore +webpages.oaconfig.bPKEncDec.keyStorePassword=Keystore password +webpages.oaconfig.bPKEncDec.keyAlias=Key alias +webpages.oaconfig.bPKEncDec.keyPassword=Key password +  webpages.oaconfig.general.identification=Unique identifier (PublicURLPrefix)  webpages.oaconfig.general.mandate.header=Mandates  webpages.oaconfig.general.mandate.profiles=Profile @@ -447,6 +456,16 @@ validation.general.sendassertion.file.valid=Send-Assertion Templates could not b  validation.general.sendassertion.file.selected=Only one Send-Assertion Template can be provided.  validation.general.testcredentials.oid.valid=The OID {0} for test credentials is not a valid. +validation.bPKDec.keyStorePassword.empty=KeyStore password is blank. +validation.bPKDec.keyStorePassword.valid=The keyStore password contains forbidden characters. The following characters are not allowed\: {0} +validation.bPKDec.keyAlias.empty=Key alias is blank. +validation.bPKDec.keyAlias.valid=The key alias contains forbidden characters. The following characters are not allowed\: {0} +validation.bPKDec.keyPassword.empty=Key password is blank. +validation.bPKDec.keyPassword.valid=The key password contains forbidden characters. The following characters are not allowed\: {0} +validation.bPKDec.keyStore.filename.valid=The keyStore filename contains forbidden characters. The following characters are not allowed\: {0} +validation.bPKDec.keyStore.file.valid=KeyStore can not loaded. Maybe keyStore password or key alias are wrong.  +validation.bPKDec.keyStore.file.selected=Only one keyStore can be provided. +  validation.stork.cpeps.cc=CPEPS country code is not based on 3166-2  validation.stork.cpeps.empty=CPEPS configuration is incomplete  validation.stork.cpeps.url=CPEPS URL is invalid diff --git a/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml b/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml index a6fe50269..d247faa1e 100644 --- a/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml +++ b/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml @@ -120,6 +120,10 @@  		<url-pattern>/*</url-pattern>  	</filter-mapping> + 	<session-config> +    <session-timeout>45</session-timeout> +  </session-config>  	 +  	  	<welcome-file-list>      	<welcome-file>/index.action</welcome-file> diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index a3541c9a7..c56ad4847 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -39,6 +39,8 @@  					<s:include value="snippets/OA/targetConfiguration.jsp"></s:include>  					<s:include value="snippets/OA/authentication.jsp"></s:include> +		 +					<s:include value="snippets/OA/bPKDecryption.jsp"></s:include>  					<s:include value="snippets/OA/sso.jsp"></s:include> @@ -82,7 +84,7 @@  					</div>  					<s:include value="snippets/OA/formCustomization.jsp"></s:include> -					 +										  					<s:hidden name="formID"   							value="%{formID}"></s:hidden> diff --git a/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/bPKDecryption.jsp b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/bPKDecryption.jsp new file mode 100644 index 000000000..9f506e7da --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/bPKDecryption.jsp @@ -0,0 +1,75 @@ +<%@page import="at.gv.egovernment.moa.id.configuration.helper.LanguageHelper"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="s" uri="/struts-tags" %> + +<html> +	<div class="oa_config_block"> +		<h3><%=LanguageHelper.getGUIString("webpages.oaconfig.bPKEncDec.header", request) %></h3> +				 +<!-- 		<div class="oa_protocol_area"> --> +			<%-- <h4><%=LanguageHelper.getGUIString("webpages.oaconfig.bPKEncDec.keystore.header", request) %></h4> --%> +			<s:iterator value="%{BPKEncDecr.keyStoreFileUploadFileName}" var="fileNameBKU"> +				<div class="floatClass"> +					<s:label 	key="webpages.oaconfig.bPKEncDec.filename"  +										value="%{fileNameBKU}"/>									 +					<s:label 	key="webpages.oaconfig.bPKEncDec.keyAlias"  +										value="%{BPKEncDecr.keyAlias}"/>									 +					<s:checkbox key="webpages.oaconfig.bPKEncDec.delete" +											labelposition="left"														 +											cssClass="checkbox" +											name="BPKEncDecr.deletekeyStore"></s:checkbox> +				</div> +				<s:if test="BPKEncDecr.validationError"> + 				<div id="pvp2_certificate_upload"> +					<s:file name="BPKEncDecr.keyStoreFileUpload" key="webpages.oaconfig.bPKEncDec.upload" cssClass="textfield_long"></s:file>					 +						<s:password 	name="BPKEncDecr.keyStorePassword" 												  +													labelposition="left" +													key="webpages.oaconfig.bPKEncDec.keyStorePassword" +													cssClass="textfield_long" +													showPassword="false"> +						</s:password> +		 +						<s:textfield 	name="BPKEncDecr.keyAlias"  +													value="%{BPKEncDecr.keyAlias}"  +													labelposition="left" +													key="webpages.oaconfig.bPKEncDec.keyAlias" +													cssClass="textfield_long"> +						</s:textfield> +		 +						<s:password 	name="BPKEncDecr.keyPassword" 													  +													labelposition="left" +													key="webpages.oaconfig.bPKEncDec.keyPassword" +													cssClass="textfield_long" +													showPassword="false"> +						</s:password> +					</div> +				</s:if> +			</s:iterator> +			<s:if test="BPKEncDecr.keyStoreFileUploadFileName.size() == 0"> +					<div id="pvp2_certificate_upload"> +					<s:file name="BPKEncDecr.keyStoreFileUpload" key="webpages.oaconfig.bPKEncDec.upload" cssClass="textfield_long"></s:file> +										 +					<s:password 	name="BPKEncDecr.keyStorePassword"   +												labelposition="left" +												key="webpages.oaconfig.bPKEncDec.keyStorePassword" +												cssClass="textfield_long"> +					</s:password> +		 +					<s:textfield name="BPKEncDecr.keyAlias"  +												value="%{BPKEncDecr.keyAlias}"  +												labelposition="left" +												key="webpages.oaconfig.bPKEncDec.keyAlias" +												cssClass="textfield_long"> +					</s:textfield> +		 +					<s:password 	name="BPKEncDecr.keyPassword"  +												labelposition="left" +												key="webpages.oaconfig.bPKEncDec.keyPassword" +												cssClass="textfield_long"> +					</s:password> +				</div> +			</s:if> +<!-- 		</div> --> +				 +	</div>				 +</html>
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/targetConfiguration.jsp b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/targetConfiguration.jsp index 261966a86..b8bd1dc02 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/targetConfiguration.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/targetConfiguration.jsp @@ -46,8 +46,8 @@  								</s:select>  							</s:else> -							<s:checkbox name="subTargetSet"  -								value="%{subTargetSet}" +							<s:checkbox name="targetConfig.subTargetSet"  +								value="%{targetConfig.subTargetSet}"  								labelposition="left"  								key="webpages.oaconfig.general.target.subsector.checkbox"  								cssClass="checkbox" | 
