diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-02-11 08:13:51 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-02-11 08:13:51 +0100 | 
| commit | b905c43b4630d290026d03e744413b20f1b73551 (patch) | |
| tree | cebfc91f43ad1e5eda977d4fc2509859abd7c4da /id/server/idserverlib | |
| parent | f86ebab09aad5971c86dce3827d46a0d41003994 (diff) | |
| download | moa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.tar.gz moa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.tar.bz2 moa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.zip | |
* add OA specific BKU selection template
* add OA specific send-assertion template
* add OA specific applet height and width configuration
* add PVP2.x reload checkbox in PVP2.x OA configuration
* add new elements to MOA-ID configuration
Diffstat (limited to 'id/server/idserverlib')
8 files changed, 117 insertions, 38 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java index 70aa1a160..2e08fad6b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java @@ -167,8 +167,10 @@ public class GetIdentityLinkFormBuilder extends Builder {      htmlForm = replaceTag(htmlForm, CERTINFO_XMLREQUEST_TAG, encodeParameter(certInfoXMLRequest), true, ALL);      htmlForm = replaceTag(htmlForm, CERTINFO_DATAURL_TAG, certInfoDataURL, true, ALL); +    Map<String, String> map = null; +          if (oaParam != null) { -    	Map<String, String> map = oaParam.getFormCustomizaten(); +    	map = oaParam.getFormCustomizaten();      	htmlForm = replaceTag(htmlForm, COLOR_TAG, map.get(FormBuildUtils.MAIN_BACKGROUNDCOLOR), false, ALL);      	htmlForm = replaceTag(htmlForm, REDIRECTTARGETTAG, map.get(FormBuildUtils.REDIRECTTARGET), false, ALL); @@ -179,11 +181,15 @@ public class GetIdentityLinkFormBuilder extends Builder {      if (MiscUtil.isNotEmpty(appletheigth))      	htmlForm = replaceTag(htmlForm, APPLETHEIGHT_TAG, appletheigth, false, ALL); +    else if (map != null && MiscUtil.isNotEmpty(map.get(FormBuildUtils.APPLET_HEIGHT))) +    	htmlForm = replaceTag(htmlForm, APPLETHEIGHT_TAG, map.get(FormBuildUtils.APPLET_HEIGHT), false, ALL);      else      	htmlForm = replaceTag(htmlForm, APPLETHEIGHT_TAG, "160", false, ALL);      if (MiscUtil.isNotEmpty(appletwidth))      	htmlForm = replaceTag(htmlForm, APPLETWIDTH_TAG, appletwidth, false, ALL); +    else if (map != null && MiscUtil.isNotEmpty(map.get(FormBuildUtils.APPLET_WIDTH))) +    	htmlForm = replaceTag(htmlForm, APPLETWIDTH_TAG, map.get(FormBuildUtils.APPLET_WIDTH), false, ALL);      else      	htmlForm = replaceTag(htmlForm, APPLETWIDTH_TAG, "250", false, ALL); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java index 90ad3cf42..ff3b7b170 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java @@ -22,6 +22,7 @@   ******************************************************************************/  package at.gv.egovernment.moa.id.auth.builder; +import java.io.ByteArrayInputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException; @@ -58,7 +59,7 @@ public class LoginFormBuilder {  	private static String SERVLET = CONTEXTPATH+"/GenerateIframeTemplate"; -	public static String getTemplate() { +	private static String getTemplate() {  		String pathLocation ="";  		InputStream input = null; @@ -118,8 +119,21 @@ public class LoginFormBuilder {  	}  	public static String buildLoginForm(String modul, String action, OAAuthParameter oaParam, String contextpath, String moaSessionID) { -		String value = getTemplate(); +		String value = null; +		 +		byte[] oatemplate = oaParam.getBKUSelectionTemplate(); +		// OA specific template requires a size of 8 bits minimum +		if (oatemplate != null && oatemplate.length > 7) { +			InputStream is = new ByteArrayInputStream(oatemplate); +			value = getTemplate(is); +			 +		} else { +			//load default BKU-selection template +			value = getTemplate(); +			 +		} +			  		if(value != null) {  			if(modul == null) {  				modul = SAML1Protocol.PATH; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java index f65a3c011..24b848176 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java @@ -22,6 +22,7 @@   ******************************************************************************/  package at.gv.egovernment.moa.id.auth.builder; +import java.io.ByteArrayInputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException; @@ -58,32 +59,50 @@ public class SendAssertionFormBuilder {  	private static String SERVLET = CONTEXTPATH+"/SSOSendAssertionServlet";  	private static String getTemplate() { - -			String template = null; -			InputStream input = null; -			try {				 -				String pathLocation; -					 -				String rootconfigdir = AuthConfigurationProvider.getInstance().getRootConfigFileDir();	 -				pathLocation = rootconfigdir + HTMLTEMPLATESDIR + HTMLTEMPLATEFULL; +		String pathLocation; +		InputStream input = null; +		try { +			String rootconfigdir = AuthConfigurationProvider.getInstance().getRootConfigFileDir();	 +			pathLocation = rootconfigdir + HTMLTEMPLATESDIR + HTMLTEMPLATEFULL; +		 +			try { +				File file = new File(new URI(pathLocation)); +				input = new  FileInputStream(file); +			 +			} catch (FileNotFoundException e)  { -				try { -					File file = new File(new URI(pathLocation)); -					input = new  FileInputStream(file); -					 -				} catch (FileNotFoundException e)  { -					 -					Logger.warn("No LoginFormTempaltes found. Use Generic Templates from package."); -					 -					pathLocation = "resources/templates/" + HTMLTEMPLATEFULL; -					 -					input = Thread.currentThread() -							.getContextClassLoader() -							.getResourceAsStream(pathLocation); -					 -				} +				Logger.warn("No LoginFormTempaltes found. Use Generic Templates from package."); +			 +				pathLocation = "resources/templates/" + HTMLTEMPLATEFULL; +			 +				input = Thread.currentThread() +						.getContextClassLoader() +						.getResourceAsStream(pathLocation); +			 +			} +			 +			return getTemplate(input); +			 +		} catch (Exception e) { +			try { +				input.close(); +			} catch (IOException e1) { +				Logger.warn("SendAssertionTemplate inputstream can not be closed.", e); +			} +			 +			return null; +		} +		 +	} +	 +	private static String getTemplate(InputStream input) { + +			String template = null; +			 +			try {				 +	  				StringWriter writer = new StringWriter();  				IOUtils.copy(input, writer);  				template = writer.toString(); @@ -105,7 +124,19 @@ public class SendAssertionFormBuilder {  	}  	public static String buildForm(String modul, String action, String id, OAAuthParameter oaParam, String contextpath) { -		String value = getTemplate(); +		String value = null; +		 +		byte[] oatemplate = oaParam.getSendAssertionTemplate(); +		// OA specific template requires a size of 8 bits minimum +		if (oatemplate != null && oatemplate.length > 7) { +			InputStream is = new ByteArrayInputStream(oatemplate); +			value = getTemplate(is); +			 +		} else { +			//load default BKU-selection template +			value = getTemplate(); +			 +		}  		if(value != null) {  			if(modul == null) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java index c66e19eb0..d2d458e74 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java @@ -82,9 +82,12 @@ public class GenerateIFrameTemplateServlet extends AuthServlet {  	    	AuthenticationSession moasession = null; -	    	try { -	    	    //moasessionid = (String) req.getSession().getAttribute(AuthenticationManager.MOA_SESSION); -	    		 +	    	if (MiscUtil.isEmpty(bkuid) || MiscUtil.isEmpty(moasessionid)) { +	    		Logger.warn("MOASessionID or BKU-type is empty. Maybe an old BKU-selection template is in use."); +	    		throw new MOAIDException("auth.23", new Object[] {}); +	    	} +	    	 +	    	try {	    		  	    	    pendingRequestID = AuthenticationSessionStoreage.getPendingRequestID(moasessionid);  	    	    moasession = AuthenticationSessionStoreage.getSession(moasessionid); @@ -112,7 +115,7 @@ public class GenerateIFrameTemplateServlet extends AuthServlet {  				//load Parameters from config  		    	String target = oaParam.getTarget(); -		    			    	 +		    	  		    	String bkuURL = oaParam.getBKUURL(bkuid);  		    	if (MiscUtil.isEmpty(bkuURL)) {  		    		Logger.info("No OA specific BKU defined. Use BKU from default configuration"); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java index 7a38e2afd..8e7ca0779 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java @@ -320,6 +320,12 @@ public Map<String, String> getFormCustomizaten() {  			if (MiscUtil.isNotEmpty(bkuselection.getAppletRedirectTarget()))  				map.put(FormBuildUtils.REDIRECTTARGET, bkuselection.getAppletRedirectTarget()); +			if (MiscUtil.isNotEmpty(bkuselection.getAppletHeight())) +				map.put(FormBuildUtils.APPLET_HEIGHT, bkuselection.getAppletHeight()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getAppletWidth())) +				map.put(FormBuildUtils.APPLET_WIDTH, bkuselection.getAppletWidth()); +			  		}  	} @@ -343,6 +349,27 @@ public List<OAStorkAttribute> getRequestedAttributes() {  } +public byte[] getBKUSelectionTemplate() { +	 +	TemplatesType templates = oa_auth.getTemplates(); +	if (templates != null && templates.getBKUSelectionTemplate() != null) { +		return templates.getBKUSelectionTemplate().getTransformation(); + +	} +	 +	return null;	 +} + +public byte[] getSendAssertionTemplate() { +	 +	TemplatesType templates = oa_auth.getTemplates(); +	if (templates != null && templates.getSendAssertionTemplate() != null) { +		return templates.getSendAssertionTemplate().getTransformation(); + +	} +	 +	return null;	 +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java index 1f526caca..6b774261d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java @@ -22,14 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.entrypoints; - - -import iaik.security.ecc.provider.ECCProvider; -import iaik.security.provider.IAIK; -  import java.io.IOException; -import java.io.PrintWriter; -import java.security.Security; +  import java.util.Iterator;  import java.util.Map;  import java.util.Set; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java index 37ead5cff..d3ac574f8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java @@ -43,6 +43,8 @@ public class FormBuildUtils {  	public static String FONTFAMILY = "#FONTTYPE#";  	public static String HEADER_TEXT = "#HEADER_TEXT#";  	public static String REDIRECTTARGET = "#REDIRECTTARGET#"; +	public static String APPLET_HEIGHT = "#APPLETHEIGHT#"; +	public static String APPLET_WIDTH = "#APPLETWIDTH#";  	private static String MANDATEVISIBLE = "#MANDATEVISIBLE#";  	private static String MANDATECHECKED = "#MANDATECHECKED#"; diff --git a/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties b/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties index a6c0601e4..2f956bd39 100644 --- a/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties +++ b/id/server/idserverlib/src/main/resources/resources/properties/id_messages_de.properties @@ -41,6 +41,8 @@ auth.19=Die Authentifizierung kann nicht passiv durchgef\u00FChrt werden.  auth.20=No valid MOA session found. Authentification process is abourted.
  auth.21=Der Anmeldevorgang wurde durch den Benutzer abgebrochen.
  auth.22=Das Protokoll {0} ist deaktiviert.
 +auth.23=Das BKU-Selektion Template entspricht nicht der Spezifikation von MOA-ID 2.x.
 +auth.24=Das Send-Assertion Template entspricht nicht der Spezifikation von MOA-ID 2.x.
  init.00=MOA ID Authentisierung wurde erfolgreich gestartet
  init.01=Fehler beim Aktivieren des IAIK-JCE/JSSE/JDK1.3 Workaround\: SSL ist m\u00F6glicherweise nicht verf\u00FCgbar
 | 
