Package com.sun.identity.workflow
Class CreateSoapSTSDeployment
- java.lang.Object
-
- com.sun.identity.workflow.Task
-
- com.sun.identity.workflow.CreateSoapSTSDeployment
-
- All Implemented Interfaces:
ITask
public class CreateSoapSTSDeployment extends Task
This class is responsible for creating the soap-sts .war file which will expose soap-sts instances published to a given realm. As such, it has a correspondence to the SoapSTS Agent created in a given realm. This class will create a .war file, based off of the .war file generated by the openam-sts/openam-soap-sts/openam-soap-sts-server module. This class will customize this .war file in the following way: 1. modify the config.properties file contained in the .war WEB-INF/classes directory to: a. specify the user-entered soap-sts-agent username as the value corresponding to the soap_sts_agent_username property b. specify the encrypted soap-sts-agent password as the value corresponding to the soap_sts_agent_password property c. specify the cookie name for this OpenAM deployment as the value corresponding to the am_session_cookie_name property d. specify the realm for this soap-sts deployment as the value corresponding to the am_realm property e. specify the url for the OpenAM deployment as the value corresponding to the am_deployment_url property 2. include any user-specified custom wsdl files in the WEB-INF/classes directory 3. include the keystore file(s) referenced in the Soap Keystore Configuration section of any soap-sts instances published to this realm in the WEB-INF/classes directory. The Soap Keystore Configuration entries describe the keystore location, aliases, and passwords necessary to enforce the SecurityPolicy binding specified in the wsdl files referenced in the soap-sts instances published in a given realm. Note that that the CXF runtime can reference keystore locations on the filesystem, as well as the classpath, so it is not mandatory that a keystore file be included in the .war file. In addition, for soap-sts instances protected by OpenAM session tokens protected by the transport binding, no keystore state is necessary. Note that the first thought would be to modify the openam-soap-sts-server .war file bundled in the OpenAM .war file (were the OpenAM build modified to effect said bundling), yet such an approach would prevent the creation of a soap-sts .war file with soap-sts bits modified post-13 release. In other words, it would be best if this class could create a soap-sts-agent-specific .war file based on soap-sts bits modified after the 13 release. Because there is no generic file upload/download functionality in OpenAM, and because keystore files must be included in the soap-sts .war file, there seems to be no other choice than to source .war file constituents from the filesystem, this despite the desire to remove filesystem dependencies to support cloud deployments. Given the need to source .war file constituents from the filesystem, it makes sense to also source the openam-soap-sts-server .war file from the filesystem, rather than from the OpenAM .war file, in order that this common-task may create .war files containing post-13 release soap-sts bits. Thus this class will write the customized .war file to the filesystem, just as the CreateFedlet common task does, but also source keystores, custom .wsdl files, and the openam-soap-sts-server .war file from the filesystem.
-
-
Constructor Summary
Constructors Constructor Description CreateSoapSTSDeployment()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
execute(Locale locale, Map mapParams)
Executes the task.protected String
getAMSessionIdCookieNameForDeployment()
protected String
getCompletionMessage(Locale locale, Path outputJarPath)
protected InputStream
getInputStreamForKeystoreFileOrCustomWsdlFile(String fileName)
protected JarInputStream
getJarInputStream()
protected JarOutputStream
getJarOutputStream(Path outputJarPath, Manifest inputWarManifest)
protected Path
getOutputJarFilePath(String realm)
-
Methods inherited from class com.sun.identity.workflow.Task
getAttributeMapping, getContent, getFileContent, getMessage, getRequestURL, getResourceBundle, getString, getWebContent
-
-
-
-
Method Detail
-
execute
public String execute(Locale locale, Map mapParams) throws WorkflowException
Description copied from interface:ITask
Executes the task.- Parameters:
locale
- Locale of the request. Need for providing locale message.mapParams
- Map of parameters.- Throws:
WorkflowException
-
getJarInputStream
protected JarInputStream getJarInputStream() throws WorkflowException
- Throws:
WorkflowException
-
getJarOutputStream
protected JarOutputStream getJarOutputStream(Path outputJarPath, Manifest inputWarManifest) throws WorkflowException
- Throws:
WorkflowException
-
getOutputJarFilePath
protected Path getOutputJarFilePath(String realm) throws WorkflowException
- Throws:
WorkflowException
-
getAMSessionIdCookieNameForDeployment
protected String getAMSessionIdCookieNameForDeployment()
-
getInputStreamForKeystoreFileOrCustomWsdlFile
protected InputStream getInputStreamForKeystoreFileOrCustomWsdlFile(String fileName) throws IOException
- Throws:
IOException
-
-