diff --git a/CASA-auth-token/server-java/Svc/README b/CASA-auth-token/server-java/Svc/README index e90d11ce..e58ee595 100644 --- a/CASA-auth-token/server-java/Svc/README +++ b/CASA-auth-token/server-java/Svc/README @@ -92,7 +92,7 @@ The ATS base settings are configured in the svc.settings file under the conf fol The following is an example svc.settings file: - + 43200 10 @@ -179,7 +179,7 @@ realms. The following is an example auth.policy file: - + CorpTree @@ -222,7 +222,7 @@ tokens issued to authenticate to the service. The following is an example authtoken.settings file: - + 3600 10 @@ -253,7 +253,7 @@ embedded in authentication tokens. The following is an example identoken.settings file: - + sn,groupMembership,guid false @@ -303,7 +303,7 @@ implementing the mechanism. The following is an example mechanism.settings file for the Krb5Authentication mechanism: - + com.novell.casa.authtoksvc.Krb5Authenticate WEB-INF/classes diff --git a/CASA-auth-token/server-java/Svc/sampleConf/auth.policy b/CASA-auth-token/server-java/Svc/sampleConf/auth.policy index d688b944..66a22a66 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/auth.policy +++ b/CASA-auth-token/server-java/Svc/sampleConf/auth.policy @@ -1,4 +1,4 @@ - + CorpTree diff --git a/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/Krb5Authenticate/mechanism.settings b/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/Krb5Authenticate/mechanism.settings index 56110b52..fc49cd37 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/Krb5Authenticate/mechanism.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/Krb5Authenticate/mechanism.settings @@ -1,4 +1,4 @@ - + com.novell.casa.authtoksvc.Krb5Authenticate WEB-INF/classes diff --git a/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/PwdAuthenticate/mechanism.settings b/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/PwdAuthenticate/mechanism.settings index 2a5f60f0..6093c9ab 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/PwdAuthenticate/mechanism.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/auth_mechanisms/PwdAuthenticate/mechanism.settings @@ -1,4 +1,4 @@ - + com.novell.casa.authtoksvc.PwdAuthenticate WEB-INF/classes diff --git a/CASA-auth-token/server-java/Svc/sampleConf/authtoken.settings b/CASA-auth-token/server-java/Svc/sampleConf/authtoken.settings index 75f4b75c..9759b5f6 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/authtoken.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/authtoken.settings @@ -1,4 +1,4 @@ - + 3600 diff --git a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/auth.policy b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/auth.policy index 0f7de72b..bac3dfa8 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/auth.policy +++ b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/auth.policy @@ -1,4 +1,4 @@ - + CorpTree diff --git a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/authtoken.settings b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/authtoken.settings index 75f4b75c..9759b5f6 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/authtoken.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/authtoken.settings @@ -1,4 +1,4 @@ - + 3600 diff --git a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/identoken.settings b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/identoken.settings index b1d40db3..de27c5c8 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/identoken.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/enabled_services/appserver.companyname.com/testService/identoken.settings @@ -1,4 +1,4 @@ - + false sn,groupMembership diff --git a/CASA-auth-token/server-java/Svc/sampleConf/identoken.settings b/CASA-auth-token/server-java/Svc/sampleConf/identoken.settings index ac54afb5..913791ce 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/identoken.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/identoken.settings @@ -1,4 +1,4 @@ - + false sn diff --git a/CASA-auth-token/server-java/Svc/sampleConf/svc.settings b/CASA-auth-token/server-java/Svc/sampleConf/svc.settings index c1465cc0..631ad829 100644 --- a/CASA-auth-token/server-java/Svc/sampleConf/svc.settings +++ b/CASA-auth-token/server-java/Svc/sampleConf/svc.settings @@ -1,4 +1,4 @@ - + /home/jluciani/jakarta-tomcat-5.0.28/webapps/CasaAuthTokenSvc/WEB-INF/conf/iaRealms.xml 43200 diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechConfig.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechConfig.java index 678f0fb0..7f27b21c 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechConfig.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechConfig.java @@ -34,11 +34,11 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * AuthMechConfig Class. - * + *

* This class obtains and maintains authentication token configuration. * */ -public class AuthMechConfig +public final class AuthMechConfig { // Well known authentication token configuration settings public final static String ClassName = "ClassName"; @@ -47,14 +47,14 @@ public class AuthMechConfig public final static String Krb5ServicePrincipalName = "ServicePrincipalName"; // Default configuration values - private String m_defaultKrb5ServicePrincipalNameValue = "host"; + private final String m_defaultKrb5ServicePrincipalNameValue = "host"; - private Map m_mechSettingsMap; + private final Map m_mechSettingsMap; - /* + /** * Class for handling parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private static final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_SETTING_ELEMENT_START = 1; @@ -64,14 +64,16 @@ public class AuthMechConfig private final static String m_rootElementName = "settings"; - private Map m_keyMap; + private final Map m_keyMap; private int m_state; private String m_currentKey; - /* - * Constructor + /** + * Constructor. + * + * @param keyMap Key/Value map. */ - public SAXHandler(Map keyMap) + public SAXHandler(Map keyMap) { super(); @@ -80,8 +82,10 @@ public class AuthMechConfig m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ public void endDocument () throws SAXException { @@ -93,8 +97,14 @@ public class AuthMechConfig } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { @@ -129,8 +139,13 @@ public class AuthMechConfig } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ public void endElement (String uri, String name, String qName) throws SAXException { @@ -163,8 +178,13 @@ public class AuthMechConfig } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ public void characters (char ch[], int start, int length) throws SAXException { @@ -180,26 +200,29 @@ public class AuthMechConfig } } - /* + /** * Constructor which sets default configuration values. */ - public AuthMechConfig() throws Exception + public AuthMechConfig() { System.err.println("AuthMechConfig()- Default"); // Create a map to keep track of the token settings - m_mechSettingsMap = new HashMap(); + m_mechSettingsMap = new HashMap(); } - /* + /** * Constructor. + * + * @param mechSettingsFileName Name of mechanism's settings file. + * @throws Exception */ public AuthMechConfig(String mechSettingsFileName) throws Exception { System.err.println("AuthMechConfig()-"); // Create a map to keep track of the token settings - m_mechSettingsMap = new HashMap(); + m_mechSettingsMap = new HashMap(); try { @@ -240,13 +263,16 @@ public class AuthMechConfig } } - /* + /** * Returns the value associated with the specified setting. + * + * @param settingName Name of the setting. + * @return Value of the specified setting. */ - public String getSetting(String settingName) throws Exception + public final String getSetting(String settingName) { // Try to find the setting in our map - String value = (String) m_mechSettingsMap.get(settingName); + String value = m_mechSettingsMap.get(settingName); if (value == null) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechanism.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechanism.java index a03dc277..c007a58b 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechanism.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthMechanism.java @@ -24,30 +24,40 @@ package com.novell.casa.authtoksvc; -/* +/** * AuthMechanism Interface. - * + *

* This is the interface implemented by Authentication Mechanisms. - * + *

* Please note that Authentication Machanisms must also implement the * Serializable interface. * */ public interface AuthMechanism { - /* + /** * Initialize the authentication mechanism. + * + * @param svcConfig Service configuration object. + * @param mechConfig Mechanism configuration object. + * @throws Exception */ void init(SvcConfig svcConfig, AuthMechConfig mechConfig) throws Exception; - /* + /** * Process authenticate request. If successful, return the Id of the * authenticated identity. + * + * @param authReqMsg Authentication request message. + * @return Id of the authenticated entity. + * @throws Exception */ String invoke(AuthReqMsg authReqMsg) throws Exception; - /* + /** * Return the mechanism id. + * + * @return Mechanism id. */ String getId(); } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthPolicyEditor.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthPolicyEditor.java index de3a471f..5b6ab76e 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthPolicyEditor.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthPolicyEditor.java @@ -34,14 +34,13 @@ import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import java.io.*; -import java.util.Formatter; /** * * Class for the creation and editing of auth.policy files. * - **/ -public class AuthPolicyEditor + */ +public final class AuthPolicyEditor { private static final String usage = "usage: AuthPolicyEditor -op [-entry realm:mechanismName[:mechanismInfo]] [-refentry realm:mechanismName] -file policyFilePath\n\n" + @@ -75,10 +74,10 @@ public class AuthPolicyEditor /** - * Returns the formal mechanism name if well known + * Returns the formal mechanism name if well known. * * @param mechName Name of mechanism. - * @return Mechanism formal name. + * @return Mechanism formal name. */ private static String mechFormalName(String mechName) { @@ -113,7 +112,7 @@ public class AuthPolicyEditor // Remove text nodes Element root = doc.getDocumentElement(); Node child; - Node next = (Node) root.getFirstChild(); + Node next = root.getFirstChild(); while ((child = next) != null) { next = child.getNextSibling(); @@ -190,7 +189,7 @@ public class AuthPolicyEditor } /** - * Gets a starting policy document + * Gets a starting policy document. * * @return Starting policy document. */ @@ -361,7 +360,7 @@ public class AuthPolicyEditor Element firstEntry = null; Node child; - Node next = (Node) root.getFirstChild(); + Node next = root.getFirstChild(); while ((child = next) != null) { next = child.getNextSibling(); @@ -525,7 +524,7 @@ public class AuthPolicyEditor } curr_auth_source_node.getNextSibling(); Element nextEntry = null; - next = (Node) curr_auth_source_node.getNextSibling();; + next = curr_auth_source_node.getNextSibling(); while ((child = next) != null) { next = child.getNextSibling(); @@ -639,9 +638,9 @@ public class AuthPolicyEditor } /** - * Applications Entry Point + * Applications Entry Point. * - * @param args + * @param args Arguments. */ public static void main(String[] args) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthReqMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthReqMsg.java index 7b9a55ab..6da153f3 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthReqMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthReqMsg.java @@ -34,30 +34,30 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * AuthReqMsg Class. - * + *

* This class deals with the message sent by Casa Client when requesting * that an entity be authenticated. The format of the message is as * follows: - * - * - * - * realm value - * mechanism id - * mechanism token data - * + *

+ * + * + * realm value + * mechanism id + * mechanism token data + * * */ -public class AuthReqMsg +public final class AuthReqMsg { protected String m_realm = null; protected String m_authMechToken = null; protected String m_authMechanism = null; - /* + /** * Class for handling Authentication Request parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_ROOT_ELEMENT_END = 1; @@ -72,11 +72,13 @@ public class AuthReqMsg private final static int AWAITING_AUTH_MECH_TOKEN_DATA = 10; private final static int DONE_PARSING = 11; - private AuthReqMsg m_authReqMsg; + private final AuthReqMsg m_authReqMsg; private int m_state; - /* - * Constructor + /** + * Constructor. + * + * @param authReqMsg Authentication request message object. */ public SAXHandler (AuthReqMsg authReqMsg) { @@ -87,10 +89,12 @@ public class AuthReqMsg m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we obtained all of the required elements if (m_state != DONE_PARSING) @@ -100,10 +104,16 @@ public class AuthReqMsg } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -170,10 +180,15 @@ public class AuthReqMsg } } - /* + /** * endElement() immplementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -240,10 +255,15 @@ public class AuthReqMsg } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Proceed based on our state switch (m_state) @@ -294,8 +314,11 @@ public class AuthReqMsg } } - /* - * Constructor + /** + * Constructor. + * + * @param inStream Input stream with authentication request data. + * @throws Exception */ public AuthReqMsg (InputStream inStream) throws Exception { @@ -317,26 +340,32 @@ public class AuthReqMsg } } - /* - * Method to get the authentication realm. + /** + * Method to get the authentication realm. + * + * @return Authentication realm name. */ - public String getRealm() throws Exception + public String getRealm() { return m_realm; } - /* - * Method to get the authentication mechanism token. + /** + * Method to get the authentication mechanism token. + * + * @return Authentication mechanism token. */ - public String getAuthMechToken() throws Exception + public String getAuthMechToken() { return m_authMechToken; } - /* - * Method to get the authentication mechanism id. + /** + * Method to get the authentication mechanism id. + * + * @return Id of authentication mechanism targeted. */ - public String getMechanismId() throws Exception + public String getMechanismId() { return m_authMechanism; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthRespMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthRespMsg.java index 6e1bc49f..9e5fd20d 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthRespMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthRespMsg.java @@ -30,83 +30,90 @@ package com.novell.casa.authtoksvc; * This class deals with the message sent to the CASA Client as a * response to an authentication request. The format of the message is * as follows when the response includes a session token: - * - * - * - * OK200 - * lifetime valuesession token data - * - * + *

+ * + * + * OK200 + * lifetime valuesession token data + * + *

* The format of the message is as follows when the response does not * include a session token. - * - * - * - * status descriptionstatus code - * - * + *

+ * + * + * status descriptionstatus code + * + *

* Plase note that the protocol utilizes the status codes defined * in the HTTP 1.1 Specification. * */ -public class AuthRespMsg +public final class AuthRespMsg { - String m_msg; + final String m_msg; - /* + /** * Constructor for a msg that does not include the session token. + * + * @param statusDescription Description of the status code. + * @param statusCode Status code. */ - public AuthRespMsg ( - String statusDescription, - String statusCode) throws Exception + public AuthRespMsg (String statusDescription, String statusCode) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.authResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + statusDescription + "" - + statusCode + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.authResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(statusDescription); sb.append(""); + sb.append(statusCode); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Constructor for a msg that includes the session token. + * + * @param statusDescription Status code description. + * @param statusCode Status code. + * @param sessionToken Session token string. + * @param sessionTokenLifetime Lifetime of the session token. */ - public AuthRespMsg ( - String statusDescription, - String statusCode, - String sessionToken, - String sessionTokenLifetime) throws Exception + public AuthRespMsg (String statusDescription, + String statusCode, + String sessionToken, + String sessionTokenLifetime) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.authResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + ProtoDefs.httpOkStatusMsg + "" - + ProtoDefs.httpOkStatusCode + "" + "\r\n"); - sb.append("<" + ProtoDefs.sessionTokenElementName + ">" - + "<" + ProtoDefs.lifetimeElementName + ">" + sessionTokenLifetime + "" - + sessionToken + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.authResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(ProtoDefs.httpOkStatusMsg); sb.append(""); + sb.append(ProtoDefs.httpOkStatusCode); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.sessionTokenElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.lifetimeElementName); sb.append(">"); sb.append(sessionTokenLifetime); sb.append(""); + sb.append(sessionToken); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Returns a string containing the AuthRespMsg. + * + * @return Authentication response message string. */ - public String toString() + public final String toString() { return m_msg; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthToken.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthToken.java index 6cce42ca..120c0860 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthToken.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthToken.java @@ -41,20 +41,20 @@ import java.io.*; //import org.apache.axis.utils.XMLUtils; -/* +/** * AuthToken Class. - * + *

* This class constructs authentication tokens that clients can present * to services for authentication. The authentication token consists of * a SOAP message secured with WSSecurity with the appropriate elements signed * and with a timestamp. The body of the SOAP message is as follows: - * - * - * Identity Token typeidentity token data - * + *

+ * + * Identity Token typeidentity token data + * * */ -public class AuthToken +public final class AuthToken { private String m_token; private String m_lifetime = ""; @@ -75,8 +75,16 @@ public class AuthToken static final private MessageContext axisMsgContext = new MessageContext(new AxisClient(new NullProvider())); - /* + /** * Constructor. + * + * @param identityId Id of the authenticated identity. + * @param realm Realm where the identity id is valid. + * @param targetService Name of the targeted service. + * @param targetHost Host where the targeted service resides. + * @param svcConfig Service configuration object. + * @param enabledSvcsConfig Enabled services configuration object. + * @throws Exception */ public AuthToken(String identityId, String realm, @@ -137,9 +145,13 @@ public class AuthToken } } - /* + /** * Constructor given an authentication token string. The constructor * validates the token as part of its processing. + * + * @param token Authentication token string. + * @param encodedToken Indication of whether or not the token is Base64 encoded. + * @throws Exception */ public AuthToken(String token, boolean encodedToken) throws Exception @@ -202,20 +214,20 @@ public class AuthToken } /** - * Get AuthToken SOAP Message + * Get AuthToken SOAP Message. * - * @param identityToken String containing the identity token that should be part of the message - * @param identityTokenType String containing the identity token type - * @param lifetime Lifetime that should be specified in the message timestamp (seconds) - * @param svcConfig Service configuration object - * @param includeCert True if the message should include the Public Certificate - * @return Message AuthToken message, null if the method fails. + * @param identityToken String containing the identity token that should be part of the message. + * @param identityTokenType String containing the identity token type. + * @param lifetime Lifetime that should be specified in the message timestamp (seconds). + * @param svcConfig Service configuration object. + * @param includeCert True if the message should include the Public Certificate. + * @return AuthToken message, null if the method fails. */ - private Message getMessage(String identityToken, - String identityTokenType, - int lifetime, - SvcConfig svcConfig, - boolean includeCert) + private static Message getMessage(String identityToken, + String identityTokenType, + int lifetime, + SvcConfig svcConfig, + boolean includeCert) { Message secureMessage; @@ -260,21 +272,26 @@ public class AuthToken return secureMessage; } - /* + /** * Returns a string containing the Base64 encode token. + * + * @return Authentication token string. */ - public String toString() + public final String toString() { return Base64Coder.encode(m_token); } - /* + /** * Returns the lifetime of the token. - * + *

* Note: It is only valid to execute this procedure if its called on an object * instantiated via the constructor which takes a lifetime parameter. + * + * @return Authentication token lifetime. + * @throws Exception */ - public String getLifetime() throws Exception + public final String getLifetime() throws Exception { // Throw exeption if the lifetime parameter is not set if (m_lifetime.length() == 0) @@ -286,28 +303,35 @@ public class AuthToken return Integer.toString(Integer.valueOf(m_lifetime).intValue() - Integer.valueOf(m_lifetimeShorter).intValue()); } - /* + /** * Returns the identity token. + * + * @return Identity token string. */ - public String getIdentityToken() + public final String getIdentityToken() { return m_identityToken; } - /* + /** * Returns the identity token type. + * + * @return Identity token type. */ - public String getIdentityTokenType() + public final String getIdentityTokenType() { return m_identityTokenType; } - /* + /** * Validates an authentication token. If successful it * returns a string containing the identity token associated * with the authentication token; otherwise it returns NULL; - * + *

* Note, the routine assumes that the token is not encoded. + * + * @param authTokenString Authentication token string. + * @return Identity token string. */ public static String validate(String authTokenString) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenConfig.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenConfig.java index 27d40aa3..f7fd136e 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenConfig.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenConfig.java @@ -34,11 +34,11 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * AuthTokenConfig Class. - * + *

* This class obtains and maintains authentication token configuration. * */ -public class AuthTokenConfig +public final class AuthTokenConfig { // Well known authentication token configuration settings public final static String TokenLifetime = "TokenLifetime"; @@ -46,16 +46,16 @@ public class AuthTokenConfig public final static String IdentityTokenType = "IdentityTokenType"; // Default configuration values - private String m_defaultTokenLifetimeValue = "3600"; // Seconds - private String m_defaultLifetimeShorterValue = "5"; // Seconds - private String m_defaultIdentityTokenTypeValue = "CasaIdentityToken"; + private final String m_defaultTokenLifetimeValue = "3600"; // Seconds + private final String m_defaultLifetimeShorterValue = "5"; // Seconds + private final String m_defaultIdentityTokenTypeValue = "CasaIdentityToken"; - private Map m_tokenSettingsMap; + private final Map m_tokenSettingsMap; - /* + /** * Class for handling parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private static final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_SETTING_ELEMENT_START = 1; @@ -65,14 +65,16 @@ public class AuthTokenConfig private final static String m_rootElementName = "settings"; - private Map m_keyMap; + private final Map m_keyMap; private int m_state; private String m_currentKey; - /* - * Constructor + /** + * Constructor. + * + * @param keyMap Key/Value pair map. */ - public SAXHandler(Map keyMap) + public SAXHandler(Map keyMap) { super(); @@ -81,8 +83,10 @@ public class AuthTokenConfig m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ public void endDocument () throws SAXException { @@ -94,8 +98,14 @@ public class AuthTokenConfig } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { @@ -130,8 +140,13 @@ public class AuthTokenConfig } } - /* + /** * endElement() immplementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ public void endElement (String uri, String name, String qName) throws SAXException { @@ -164,8 +179,13 @@ public class AuthTokenConfig } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ public void characters (char ch[], int start, int length) throws SAXException { @@ -181,15 +201,15 @@ public class AuthTokenConfig } } - /* + /** * Constructor which sets default configuration values. */ - public AuthTokenConfig() throws Exception + public AuthTokenConfig() { System.err.println("AuthTokenConfig()- Default"); // Create a map to keep track of the token settings - m_tokenSettingsMap = new HashMap(); + m_tokenSettingsMap = new HashMap(); // Set the default settings in our map m_tokenSettingsMap.put(TokenLifetime, m_defaultTokenLifetimeValue); @@ -197,15 +217,18 @@ public class AuthTokenConfig m_tokenSettingsMap.put(IdentityTokenType, m_defaultIdentityTokenTypeValue); } - /* + /** * Constructor. + * + * @param authTokenSettingsFileName Name of the authentication token settings file. + * @throws Exception */ public AuthTokenConfig(String authTokenSettingsFileName) throws Exception { System.err.println("AuthTokenConfig()-"); // Create a map to keep track of the token settings - m_tokenSettingsMap = new HashMap(); + m_tokenSettingsMap = new HashMap(); try { @@ -246,13 +269,16 @@ public class AuthTokenConfig } } - /* + /** * Returns the value associated with the specified setting. + * + * @param settingName Name of the setting. + * @return Value of the specified setting. */ - public String getSetting(String settingName) throws Exception + public final String getSetting(String settingName) { // Try to find the setting in our map - String value = (String) m_tokenSettingsMap.get(settingName); + String value = m_tokenSettingsMap.get(settingName); if (value == null) { System.err.println("AuthTokenConfig.getSetting()- Did not find setting " + settingName); diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenSettingsEditor.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenSettingsEditor.java index e682b958..068012a8 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenSettingsEditor.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/AuthTokenSettingsEditor.java @@ -28,8 +28,8 @@ package com.novell.casa.authtoksvc; * * Class for the creation and editing of authtoken.settings files. * - **/ -public class AuthTokenSettingsEditor implements IVerifySetting + */ +public final class AuthTokenSettingsEditor implements IVerifySetting { private static final String usage = "usage: AuthTokenSettingsEditor -op [settingName [settingValue]] -file settingsFilePath\n\n" + @@ -130,9 +130,9 @@ public class AuthTokenSettingsEditor implements IVerifySetting } /** - * Applications Entry Point + * Applications Entry Point. * - * @param args + * @param args Arguments. */ public static void main(String[] args) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Authenticate.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Authenticate.java index 4e5115a3..8b2533b3 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Authenticate.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Authenticate.java @@ -39,32 +39,36 @@ import java.net.URLClassLoader; /** * Authenticate Class. - * + *

* This class processes authentication requests. * */ -public class Authenticate implements RpcMethod +public final class Authenticate implements RpcMethod { private static final String m_mechanismSettingsFileName = "mechanism.settings"; - private Map m_authMechanismMap; + private final Map m_authMechanismMap; private SvcConfig m_svcConfig; private EnabledSvcsConfig m_enabledSvcsConfig; - /* - * Constructor + /** + * Constructor. */ - public Authenticate() throws Exception + public Authenticate() { // Create a map to keep track of the authentication mechanisms - m_authMechanismMap = new HashMap(); + m_authMechanismMap = new HashMap(); } - /* + /** * Initialize the Rpc method. + * + * @param svcConfig Service configuration object. + * @param enabledSvcsConfig Enabled services configuration object. + * @throws Exception */ - public void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception + public final void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception { m_svcConfig = svcConfig; m_enabledSvcsConfig = enabledSvcsConfig; @@ -120,7 +124,7 @@ public class Authenticate implements RpcMethod ClassLoader customClassLoader = new URLClassLoader(urls); // Load the mech class using our custom loader - Class mechClass = customClassLoader.loadClass(mechClassName); + Class mechClass = customClassLoader.loadClass(mechClassName); FileOutputStream fos = new FileOutputStream(svcConfig.getSetting(SvcConfig.AppRootPath) + "tmp"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(mechClass); @@ -128,7 +132,7 @@ public class Authenticate implements RpcMethod fos.close(); FileInputStream fis = new FileInputStream(svcConfig.getSetting(SvcConfig.AppRootPath) + "tmp"); ObjectInputStream ois = new ObjectInputStream(fis); - mechClass = (Class) ois.readObject(); + mechClass = (Class) ois.readObject(); ois.close(); fis.close(); @@ -174,7 +178,7 @@ public class Authenticate implements RpcMethod ClassLoader customClassLoader = new URLClassLoader(urls); // Load the mech class using our custom loader - Class mechClass = customClassLoader.loadClass(mechClassName); + Class mechClass = customClassLoader.loadClass(mechClassName); FileOutputStream fos = new FileOutputStream(svcConfig.getSetting(SvcConfig.AppRootPath) + "tmp"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(mechClass); @@ -182,7 +186,7 @@ public class Authenticate implements RpcMethod fos.close(); FileInputStream fis = new FileInputStream(svcConfig.getSetting(SvcConfig.AppRootPath) + "tmp"); ObjectInputStream ois = new ObjectInputStream(fis); - mechClass = (Class) ois.readObject(); + mechClass = (Class) ois.readObject(); ois.close(); fis.close(); @@ -254,10 +258,13 @@ public class Authenticate implements RpcMethod } } - /* + /** * Process Rpc. + * + * @param inStream Input data stream (Request data). + * @param out Output data print writter (Reply data). */ - public void invoke(InputStream inStream, PrintWriter out) throws IOException + public final void invoke(InputStream inStream, PrintWriter out) { try { @@ -267,7 +274,7 @@ public class Authenticate implements RpcMethod AuthReqMsg authReqMsg = new AuthReqMsg(inStream); // Get the necessary authentication mechanism - AuthMechanism authMechanism = (AuthMechanism) m_authMechanismMap.get(authReqMsg.getMechanismId()); + AuthMechanism authMechanism = m_authMechanismMap.get(authReqMsg.getMechanismId()); if (authMechanism != null) { // Invoke the mechanism to authenticate the entity @@ -331,10 +338,12 @@ public class Authenticate implements RpcMethod } } - /* + /** * Return the method id. + * + * @return Method id. */ - public String getId() + public final String getId() { return "Authenticate"; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Base64Coder.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Base64Coder.java index 5584b692..89f45be0 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Base64Coder.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Base64Coder.java @@ -20,19 +20,22 @@ package com.novell.casa.authtoksvc; -public class Base64Coder { +/** + * Base64Coder class. + */ +public final class Base64Coder { // Mapping table from 6-bit nibbles to Base64 characters. -private static char[] map1 = new char[64]; +private static final char[] map1 = new char[64]; static { int i=0; for (char c='A'; c<='Z'; c++) map1[i++] = c; for (char c='a'; c<='z'; c++) map1[i++] = c; for (char c='0'; c<='9'; c++) map1[i++] = c; - map1[i++] = '+'; map1[i++] = '/'; } + map1[i++] = '+'; map1[i] = '/'; } // Mapping table from Base64 characters to 6-bit nibbles. -private static byte[] map2 = new byte[128]; +private static final byte[] map2 = new byte[128]; static { for (int i=0; i * This class constructs Casa Identity tokens. - * + *

* A Casa Identity Token is a simple XML Document * with information about an identity in the form * of: - * - * - * - * identity id - * identity data source name - * identity data source url - * target service name - * target host name - * - * attribute value - * attribute2 value - * ... - * - * - * - * - * attribute/values pairs. The attribute names + *

+ * + * + * identity id + * identity data source name + * identity data source url + * target service name + * target host name + * + * attribute value + * attribute2 value + * ... + * + * + *

+ * Attribute/values pairs. The attribute names * being the XML elements of the documents. * */ -public class CasaIdentityToken implements IdentityToken +public final class CasaIdentityToken implements IdentityToken { /* * XML Element Name Constants for the documents exchanged between the @@ -86,7 +83,7 @@ public class CasaIdentityToken implements IdentityToken private final static String targetHostElementName = "target_host"; private final static String attributesElementName = "attributes"; - private IdenTokenConfig m_idenTokenConfig; + private final IdenTokenConfig m_idenTokenConfig; private String m_identityId = null; private String m_sourceName = null; @@ -96,10 +93,10 @@ public class CasaIdentityToken implements IdentityToken private String m_token = null; private javax.naming.directory.Attributes m_attributes = null; - /* + /** * Class for handling Authentication Request parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_ROOT_ELEMENT_END = 1; @@ -125,13 +122,15 @@ public class CasaIdentityToken implements IdentityToken private final static int AWAITING_BINARY_ATTRIBUTE_DATA = 21; private final static int DONE_PARSING = 22; - private CasaIdentityToken m_casaIdentToken; + private final CasaIdentityToken m_casaIdentToken; private int m_state; private String m_currAttribute; private boolean m_encryptedAttrs; - /* - * Constructor + /** + * Constructor. + * + * @param casaIdentityToken Casa Identity Token object. */ public SAXHandler (CasaIdentityToken casaIdentityToken) { @@ -142,10 +141,12 @@ public class CasaIdentityToken implements IdentityToken m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we obtained all of the required elements if (m_state != DONE_PARSING) @@ -155,11 +156,16 @@ public class CasaIdentityToken implements IdentityToken } } - /* - * + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -289,10 +295,15 @@ public class CasaIdentityToken implements IdentityToken } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -407,10 +418,15 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Proceed based on our state switch (m_state) @@ -510,8 +526,10 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Constructor. + * + * @param idenTokenConfig Identity token configuration object. */ public CasaIdentityToken (IdenTokenConfig idenTokenConfig) { @@ -521,7 +539,7 @@ public class CasaIdentityToken implements IdentityToken m_idenTokenConfig = idenTokenConfig; } - /* + /** * Constructor. */ public CasaIdentityToken () @@ -532,14 +550,21 @@ public class CasaIdentityToken implements IdentityToken m_idenTokenConfig = null; } - /* + /** * Initialize with parameters. + * + * @param identityId Identity identifier. + * @param sourceName Name of the realm where the identityId is valid. + * @param targetService Name of service being targeted. + * @param targetHost Host where the targeted service resides. + * @param svcConfig Service configuration object. + * @throws Exception */ - public void initialize (String identityId, - String sourceName, - String targetService, - String targetHost, - SvcConfig svcConfig) throws Exception + public final void initialize (String identityId, + String sourceName, + String targetService, + String targetHost, + SvcConfig svcConfig) throws Exception { // Save input parameters m_identityId = identityId; @@ -561,14 +586,14 @@ public class CasaIdentityToken implements IdentityToken // Setup a string buffer for building the IdentityToken, notice for now // we are not going to wrap the identity token. StringBuffer sb = new StringBuffer(); - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + casaIdentTokElementName + ">" + "\r\n"); - sb.append("<" + idElementName + ">" + identityId + "\r\n"); - sb.append("<" + sourceNameElementName + ">" + sourceName + "\r\n"); - sb.append("<" + sourceUrlElementName + ">" + m_sourceUrl + "\r\n"); - sb.append("<" + targetServiceElementName + ">" + m_service + "\r\n"); - sb.append("<" + targetHostElementName + ">" + m_host + "\r\n"); - sb.append("<" + attributesElementName + ">" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(casaIdentTokElementName); sb.append(">"); sb.append("\r\n"); + sb.append("<"); sb.append(idElementName); sb.append(">"); sb.append(identityId); sb.append("\r\n"); + sb.append("<"); sb.append(sourceNameElementName); sb.append(">"); sb.append(sourceName); sb.append("\r\n"); + sb.append("<"); sb.append(sourceUrlElementName); sb.append(">"); sb.append(m_sourceUrl); sb.append("\r\n"); + sb.append("<"); sb.append(targetServiceElementName); sb.append(">"); sb.append(m_service); sb.append("\r\n"); + sb.append("<"); sb.append(targetHostElementName); sb.append(">"); sb.append(m_host); sb.append("\r\n"); + sb.append("<"); sb.append(attributesElementName); sb.append(">\r\n"); // Get the necessary attributes of the specified services in the identity token String[] attributesNeeded = m_idenTokenConfig.getAttributes(); @@ -580,7 +605,7 @@ public class CasaIdentityToken implements IdentityToken { javax.naming.directory.Attribute attr = (javax.naming.directory.Attribute) ae.next(); - NamingEnumeration enumeration = attr.getAll(); + NamingEnumeration enumeration = attr.getAll(); while (enumeration.hasMore()) { Object attrValue = enumeration.next(); @@ -600,13 +625,13 @@ public class CasaIdentityToken implements IdentityToken if (attrValue instanceof byte[]) { // The attribute value is of type byte[], we need to encode it. - sb.append("<" + attr.getID() + " type=\"binary\" encoding=\"base64\">" + new String(Base64Coder.encode((byte[]) attrValue)) + "" + "\r\n"); + sb.append("<"); sb.append(attr.getID()); sb.append(" type=\"binary\" encoding=\"base64\">"); sb.append(new String(Base64Coder.encode((byte[]) attrValue))); sb.append("\r\n"); System.err.println("Attribute " + attr.getID() + "included as " + new String(Base64Coder.encode((byte[]) attrValue))); } else { // Assume the attribute value is of type String - sb.append("<" + attr.getID() + ">" + (String) attrValue + "" + "\r\n"); + sb.append("<"); sb.append(attr.getID()); sb.append(">"); sb.append(attrValue); sb.append("\r\n"); } } } @@ -628,10 +653,13 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Initialize the token object with an ecoded token string. + * + * @param encodedToken Encoded identity token string. + * @throws Exception */ - public void initialize (String encodedToken) throws Exception + public final void initialize (String encodedToken) throws Exception { // Save copy of the token m_token = Base64Coder.decode(encodedToken); @@ -658,13 +686,16 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns encoded token string. - * + *

* IMPORTANT: The token string can not contain the substring "]]>" * within it. + * + * @return Encoded identity token string. + * @throws Exception */ - public String getEncodedToken () throws Exception + public final String getEncodedToken () throws Exception { if (m_token != null) { @@ -677,19 +708,25 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns a string containing our type of identity token provider. + * + * @return Identity token provider type. + * @throws Exception */ - public String getProviderType () throws Exception + public final String getProviderType () throws Exception { // tbd - Change to a GUID return "CasaIdentityToken"; } - /* + /** * Returns a string containing the identity id. + * + * @return Identity identifier. + * @throws Exception */ - public String getIdentityId () throws Exception + public final String getIdentityId () throws Exception { if (m_identityId != null) return m_identityId; @@ -700,11 +737,14 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns a string containing the name associated with the * identity source. + * + * @return Name of the authentication realm. + * @throws Exception */ - public String getSourceName () throws Exception + public final String getSourceName () throws Exception { if (m_sourceName != null) return m_sourceName; @@ -715,11 +755,14 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns a string containing the url associated with the * identity source. + * + * @return Url of the identity data source. + * @throws Exception */ - public String getSourceUrl () throws Exception + public final String getSourceUrl () throws Exception { if (m_sourceUrl != null) return m_sourceUrl; @@ -730,10 +773,13 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns a string containing the name of the targeted service. + * + * @return Name of the targeted service. + * @throws Exception */ - public String getTargetService () throws Exception + public final String getTargetService () throws Exception { if (m_service != null) return m_service; @@ -744,11 +790,14 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns a string containig the name of the host where the * targeted service resides. + * + * @return Name of the host where the targeted service resides. + * @throws Exception */ - public String getTargetHost () throws Exception + public final String getTargetHost () throws Exception { if (m_host != null) return m_host; @@ -759,10 +808,13 @@ public class CasaIdentityToken implements IdentityToken } } - /* + /** * Returns the attributes of the identity. + * + * @return Identity attributes. + * @throws Exception */ - public javax.naming.directory.Attributes getAttributes () throws Exception + public final javax.naming.directory.Attributes getAttributes () throws Exception { if (m_attributes != null) return m_attributes; diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/EnabledSvcsConfig.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/EnabledSvcsConfig.java index 5dc76489..bb413313 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/EnabledSvcsConfig.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/EnabledSvcsConfig.java @@ -29,18 +29,18 @@ import java.util.*; /** * EnabledSvcsConfig Class. - * + *

* This class obtains and maintains configuration and policy information about * the services enabled to use Authentication Tokens. * */ -public class EnabledSvcsConfig +public final class EnabledSvcsConfig { private static final String m_authPolicyFileName = "auth.policy"; private static final String m_authTokenSettingsFileName = "authtoken.settings"; private static final String m_idenTokenSettingsFileName = "identoken.settings"; - private boolean m_enabledSvcsOnly; + private final boolean m_enabledSvcsOnly; // Default auth policy, authtoken, and identtoken configs. byte[] m_defaultAuthPolicyData = null; @@ -48,23 +48,27 @@ public class EnabledSvcsConfig IdenTokenConfig m_defaultIdenTokenConfig = null; - private Map m_hostsMap; + private final Map> m_hostsMap; /** * SvcConfigEntry Class. - * + *

* This class is used to maintain the configuration and policy associated with an * enabled service. * */ - private class SvcConfigEntry + private static final class SvcConfigEntry { - protected byte[] m_authPolicyFileData; - protected AuthTokenConfig m_authTokenConfig; - protected IdenTokenConfig m_idenTokenConfig; + protected final byte[] m_authPolicyFileData; + protected final AuthTokenConfig m_authTokenConfig; + protected final IdenTokenConfig m_idenTokenConfig; - /* + /** * Constructor. + * + * @param authPolicyFileData Authentication policy file data. + * @param authTokenConfig Authentication token configuration object. + * @param idenTokenConfig Identity token configuration object. */ public SvcConfigEntry(byte[] authPolicyFileData, AuthTokenConfig authTokenConfig, @@ -76,8 +80,13 @@ public class EnabledSvcsConfig } } - /* + /** * Constructor. + * + * @param svcConfigPath Path to the service configuration folder. + * @param enabledSvcsOnly True if configured to only provide authentication for + * configured services. + * @throws Exception */ public EnabledSvcsConfig(String svcConfigPath, boolean enabledSvcsOnly) throws Exception @@ -88,14 +97,9 @@ public class EnabledSvcsConfig // Remember the enabledSvcsOnly setting m_enabledSvcsOnly = enabledSvcsOnly; - // Initialize the default auth policy, authtoken, and identtoken configs. - byte[] defaultAuthPolicyData = null; - AuthTokenConfig defaultAuthTokenConfig = null; - IdenTokenConfig defaultIdenTokenConfig = null; - // Create a map to keep track of the enabled services and their configuration // for each configured host. - m_hostsMap = new HashMap(); + m_hostsMap = new HashMap>(); // Get access to the configuration folder for the service File configFolder = new File(svcConfigPath); @@ -176,7 +180,7 @@ public class EnabledSvcsConfig if (hostFolderObjs != null) { // Create a Map object to hold the service configurations for this host - Map enabledSvcsConfigMap = new HashMap(); + Map enabledSvcsConfigMap = new HashMap(); for (int ii = 0; ii < hostFolderObjs.length; ii++) { @@ -295,11 +299,15 @@ public class EnabledSvcsConfig } } - /* + /** * Returns true if the specified service has been enabled to use authentication * tokens. + * + * @param hostName Name of host where the service resides. + * @param serviceName Name of the service. + * @return True if the service is enabled. */ - public boolean svcEnabled(String hostName, String serviceName) + public final boolean svcEnabled(String hostName, String serviceName) { // Always return try if m_enabledSvcsOnly is configured "false" else // check the enabled svcs configuration. @@ -311,7 +319,7 @@ public class EnabledSvcsConfig { // First try to obtain the Map of enabled services for the host // tbd - Should we make this case insensitive? - Map enabledSvcsConfigMap = (Map) m_hostsMap.get(hostName); + Map enabledSvcsConfigMap = m_hostsMap.get(hostName); if (enabledSvcsConfigMap != null) { return enabledSvcsConfigMap.containsKey(serviceName); @@ -323,21 +331,25 @@ public class EnabledSvcsConfig } } - /* + /** * Returns the data associated with the authentication policy file * associated with the specified service. + * + * @param hostName Name of host where the service resides. + * @param serviceName Name of the service. + * @return Authentication policy data for the service. */ - public byte[] getAuthPolicyFileDataForSvc(String hostName, String serviceName) + public final byte[] getAuthPolicyFileDataForSvc(String hostName, String serviceName) { byte[] authPolicyData = null; // First try to obtain the Map of enabled services for the host // tbd - Should we make this case insensitive? - Map enabledSvcsConfigMap = (Map) m_hostsMap.get(hostName); + Map enabledSvcsConfigMap = m_hostsMap.get(hostName); if (enabledSvcsConfigMap != null) { // Retrieve SvcConfigEntry for the service from the map for the host - SvcConfigEntry svcConfigEntry = (SvcConfigEntry) enabledSvcsConfigMap.get(serviceName); + SvcConfigEntry svcConfigEntry = enabledSvcsConfigMap.get(serviceName); if (svcConfigEntry != null) { authPolicyData = svcConfigEntry.m_authPolicyFileData; @@ -356,21 +368,25 @@ public class EnabledSvcsConfig return authPolicyData; } - /* + /** * Returns the authentication token configuration associated with the * specified service. + * + * @param hostName Name of host where the service resides. + * @param serviceName Name of the service. + * @return Authentication token configuration object for the service. */ - public AuthTokenConfig getAuthTokenConfig(String hostName, String serviceName) + public final AuthTokenConfig getAuthTokenConfig(String hostName, String serviceName) { AuthTokenConfig authTokenConfig = null; // First try to obtain the Map of enabled services for the host // tbd - Should we make this case insensitive? - Map enabledSvcsConfigMap = (Map) m_hostsMap.get(hostName); + Map enabledSvcsConfigMap = m_hostsMap.get(hostName); if (enabledSvcsConfigMap != null) { // Retrieve SvcConfigEntry for the service from the map for the host - SvcConfigEntry svcConfigEntry = (SvcConfigEntry) enabledSvcsConfigMap.get(serviceName); + SvcConfigEntry svcConfigEntry = enabledSvcsConfigMap.get(serviceName); if (svcConfigEntry != null) { authTokenConfig = svcConfigEntry.m_authTokenConfig; @@ -388,21 +404,25 @@ public class EnabledSvcsConfig return authTokenConfig; } - /* + /** * Returns the identity token configuration associated with the * specified service. + * + * @param hostName Name of host where the service resides. + * @param serviceName Name of the service. + * @return Identity token configuration object for the specified service. */ - public IdenTokenConfig getIdenTokenConfig(String hostName, String serviceName) + public final IdenTokenConfig getIdenTokenConfig(String hostName, String serviceName) { IdenTokenConfig idenTokenConfig = null; // First try to obtain the Map of enabled services for the host // tbd - Should we make this case insensitive? - Map enabledSvcsConfigMap = (Map) m_hostsMap.get(hostName); + Map enabledSvcsConfigMap = m_hostsMap.get(hostName); if (enabledSvcsConfigMap != null) { // Retrieve SvcConfigEntry for the service from the map for the host - SvcConfigEntry svcConfigEntry = (SvcConfigEntry) enabledSvcsConfigMap.get(serviceName); + SvcConfigEntry svcConfigEntry = enabledSvcsConfigMap.get(serviceName); if (svcConfigEntry != null) { idenTokenConfig = svcConfigEntry.m_idenTokenConfig; diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicy.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicy.java index 3517727f..4c26e5ed 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicy.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicy.java @@ -26,30 +26,33 @@ package com.novell.casa.authtoksvc; import java.io.*; import java.io.PrintWriter; -import java.util.*; /** * GetAuthPolicy Class. - * + *

* This class processes get authentication policy requests for a particular * service. * */ -public class GetAuthPolicy implements RpcMethod +public final class GetAuthPolicy implements RpcMethod { private SvcConfig m_svcConfig; private EnabledSvcsConfig m_enabledSvcsConfig; - /* + /** * Constructor. */ - public GetAuthPolicy() throws Exception + public GetAuthPolicy() { // Nothing to do at this time } - /* + /** * Initialize the Rpc method. + * + * @param svcConfig Service configuration object. + * @param enabledSvcsConfig Enabled services configuration object. + * @throws Exception */ public void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception { @@ -57,8 +60,12 @@ public class GetAuthPolicy implements RpcMethod m_enabledSvcsConfig = enabledSvcsConfig; } - /* + /** * Process Rpc. + * + * @param inStream Input stream with request. + * @param out Ouput print writer for reply. + * @throws IOException */ public void invoke(InputStream inStream, PrintWriter out) throws IOException { @@ -122,8 +129,10 @@ public class GetAuthPolicy implements RpcMethod } } - /* + /** * Return the method id. + * + * @return Method id. */ public String getId() { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyReqMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyReqMsg.java index b19a3d47..a01d7db2 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyReqMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyReqMsg.java @@ -33,19 +33,19 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * GetAuthPolicyReqMsg Class. - * + *

* This class deals with the message sent by Casa Client when requesting * authenication policy to authenticate an entity to a particular service. * The format of the the message is as follows: - * - * - * - * service name - * host name - * + *

+ * + * + * service name + * host name + * * */ -public class GetAuthPolicyReqMsg +public final class GetAuthPolicyReqMsg { protected String m_serviceName = null; @@ -54,7 +54,7 @@ public class GetAuthPolicyReqMsg /* * Class for handling GetAuthPolicyReq msg parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_ROOT_ELEMENT_END = 1; @@ -66,25 +66,29 @@ public class GetAuthPolicyReqMsg private final static int AWAITING_HOST_DATA = 7; private final static int DONE_PARSING = 8; - private GetAuthPolicyReqMsg m_GetAuthPolicyReqMsg; + private final GetAuthPolicyReqMsg m_GetAuthPolicyReqMsg; private int m_state; - /* - * Constructor + /** + * Constructor. + * + * @param getAuthPolicyReqMsg Get authentication policy request message object. */ - public SAXHandler (GetAuthPolicyReqMsg GetAuthPolicyReqMsg) + public SAXHandler (GetAuthPolicyReqMsg getAuthPolicyReqMsg) { super(); // Initialize our members - m_GetAuthPolicyReqMsg = GetAuthPolicyReqMsg; + m_GetAuthPolicyReqMsg = getAuthPolicyReqMsg; m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we obtained all of the required elements if (m_state != DONE_PARSING) @@ -96,8 +100,14 @@ public class GetAuthPolicyReqMsg /* * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -151,10 +161,15 @@ public class GetAuthPolicyReqMsg } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -207,10 +222,15 @@ public class GetAuthPolicyReqMsg } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Proceed based on our state switch (m_state) @@ -248,8 +268,11 @@ public class GetAuthPolicyReqMsg } } - /* - * Constructor + /** + * Constructor. + * + * @param inStream Input stream with get authentication policy request message. + * @throws Exception */ public GetAuthPolicyReqMsg (InputStream inStream) throws Exception { @@ -271,18 +294,22 @@ public class GetAuthPolicyReqMsg } } - /* - * Method to get the service name. + /** + * Method to get the service name. + * + * @return Service name. */ - public String getServiceName() throws Exception + public String getServiceName() { return m_serviceName; } - /* - * Method to get the host name. + /** + * Method to get the host name. + * + * @return Host name. */ - public String getHostName() throws Exception + public String getHostName() { return m_hostName; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyRespMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyRespMsg.java index 7b122473..1c361c94 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyRespMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthPolicyRespMsg.java @@ -26,83 +26,90 @@ package com.novell.casa.authtoksvc; /** * GetAuthPolicyRespMsg Class. - * + *

* This class deals with the message sent to the Casa Client as a * response to a get authentication token request. The format of * the message is as follows when the response includes an * authentication token: - * - * - * - * OK200 - * authentication policy data - * - * + *

+ * + * + * OK200 + * authentication policy data + * + *

* The format of the message is as follows when the response does not * include an authentication token. - * - * - * - * status descriptionstatus code - * - * + *

+ * + * + * status descriptionstatus code + * + *

* Plase note that the protocol utilizes the status codes defined * in the HTTP 1.1 Specification. * */ -public class GetAuthPolicyRespMsg +public final class GetAuthPolicyRespMsg { - String m_msg; + final String m_msg; - /* + /** * Constructor for a msg that does not include the authentication policy. + * + * @param statusDescription Status code description. + * @param statusCode Status code. */ - public GetAuthPolicyRespMsg ( - String statusDescription, - String statusCode) throws Exception + public GetAuthPolicyRespMsg (String statusDescription, + String statusCode) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.getAuthPolicyResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + statusDescription + "" - + statusCode + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.getAuthPolicyResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(statusDescription); sb.append(""); + sb.append(statusCode); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Constructor for a msg that includes the authentication policy. + * + * @param statusDescription Status code description. + * @param statusCode Status code. + * @param authPolicy Authentication policy data. */ - public GetAuthPolicyRespMsg ( - String statusDescription, - String statusCode, - String authPolicy) throws Exception + public GetAuthPolicyRespMsg (String statusDescription, + String statusCode, + String authPolicy) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.getAuthPolicyResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + ProtoDefs.httpOkStatusMsg + "" - + ProtoDefs.httpOkStatusCode + "" + "\r\n"); - sb.append("<" + ProtoDefs.authPolicyElementName + ">" + authPolicy + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.getAuthPolicyResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(ProtoDefs.httpOkStatusMsg); sb.append(""); + sb.append(ProtoDefs.httpOkStatusCode); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.authPolicyElementName); sb.append(">"); sb.append(authPolicy); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Returns a string containing the GetAuthPolicyRespMsg. + * + * @return Get authentication policy response message string. */ public String toString() { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokReqMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokReqMsg.java index 9a98dbd8..3766f104 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokReqMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokReqMsg.java @@ -33,30 +33,30 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * GetAuthTokReqMsg Class. - * + *

* This class deals with the message sent by Casa Client when requesting * a token to authenticate an entity to a particular service. The format of * the message is as follows: - * - * - * - * service name - * host name - * session token data - * - * + *

+ * + * + * service name + * host name + * session token data + * + *

*/ -public class GetAuthTokReqMsg +public final class GetAuthTokReqMsg { protected String m_serviceName = null; protected String m_hostName = null; protected String m_sessionToken = null; - /* + /** * Class for handling GetAuthTokReq msg parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_ROOT_ELEMENT_END = 1; @@ -71,25 +71,29 @@ public class GetAuthTokReqMsg private final static int AWAITING_SESSION_TOKEN_DATA = 10; private final static int DONE_PARSING = 11; - private GetAuthTokReqMsg m_GetAuthTokReqMsg; + private final GetAuthTokReqMsg m_GetAuthTokReqMsg; private int m_state; - /* - * Constructor + /** + * Constructor. + * + * @param getAuthTokReqMsg Get authentication token request message object. */ - public SAXHandler (GetAuthTokReqMsg GetAuthTokReqMsg) + public SAXHandler (GetAuthTokReqMsg getAuthTokReqMsg) { super(); // Initialize our members - m_GetAuthTokReqMsg = GetAuthTokReqMsg; + m_GetAuthTokReqMsg = getAuthTokReqMsg; m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we obtained all of the required elements if (m_state != DONE_PARSING) @@ -99,10 +103,16 @@ public class GetAuthTokReqMsg } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -170,10 +180,15 @@ public class GetAuthTokReqMsg } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -240,10 +255,15 @@ public class GetAuthTokReqMsg } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Proceed based on our state switch (m_state) @@ -294,8 +314,11 @@ public class GetAuthTokReqMsg } } - /* - * Constructor + /** + * Constructor. + * + * @param inStream Input stream with get authentication token request message. + * @throws Exception */ public GetAuthTokReqMsg (InputStream inStream) throws Exception { @@ -317,26 +340,32 @@ public class GetAuthTokReqMsg } } - /* - * Method to get the service name. + /** + * Method to get the service name. + * + * @return Service name. */ - public String getServiceName() throws Exception + public String getServiceName() { return m_serviceName; } - /* + /** * Method to get the host name. + * + * @return Host name. */ - public String getHostName() throws Exception + public String getHostName() { return m_hostName; } - /* - * Method to get the session token. + /** + * Method to get the session token. + * + * @return Session token string. */ - public String getSessionToken() throws Exception + public String getSessionToken() { return m_sessionToken; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokRespMsg.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokRespMsg.java index 01dd193d..3dd7a945 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokRespMsg.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthTokRespMsg.java @@ -26,86 +26,94 @@ package com.novell.casa.authtoksvc; /** * GetAuthTokRespMsg Class. - * + *

* This class deals with the message sent to the Casa Client as a * response to a get authentication token request. The format of * the message is as follows when the response includes an * authentication token: - * - * - * - * OK200 - * lifetime valueauthentication token data - * - * + *

+ * + * + * OK200 + * lifetime valueauthentication token data + * + *

* The format of the message is as follows when the response does not * include an authentication token. - * - * - * - * status descriptionstatus code - * - * + *

+ * + * + * status descriptionstatus code + * + *

* Plase note that the protocol utilizes the status codes defined * in the HTTP 1.1 Specification. * */ -public class GetAuthTokRespMsg +public final class GetAuthTokRespMsg { - String m_msg; + final String m_msg; - /* + /** * Constructor for a msg that does not include the authentication token. + * + * @param statusDescription Status code description. + * @param statusCode Status code. */ - public GetAuthTokRespMsg ( - String statusDescription, - String statusCode) throws Exception + public GetAuthTokRespMsg (String statusDescription, + String statusCode) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.getAuthTokResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + statusDescription + "" - + statusCode + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.getAuthTokResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(statusDescription); sb.append(""); + sb.append(statusCode); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Constructor for a msg that includes the authentication token. + * + * @param statusDescription Status code description. + * @param statusCode Status code. + * @param authToken Authentication token string. + * @param authTokenLifetime Authentication token lifetime. */ - public GetAuthTokRespMsg ( - String statusDescription, - String statusCode, - String authToken, - String authTokenLifetime) throws Exception + public GetAuthTokRespMsg (String statusDescription, + String statusCode, + String authToken, + String authTokenLifetime) { // Get a StringBuffer to help us with the construction of the message StringBuffer sb = new StringBuffer(); // Start building the message - sb.append(ProtoDefs.xmlDeclaration + "\r\n"); - sb.append("<" + ProtoDefs.getAuthTokResponseElementName + ">" + "\r\n"); - sb.append("<" + ProtoDefs.statusElementName + ">" - + "<" + ProtoDefs.descriptionElementName + ">" + ProtoDefs.httpOkStatusMsg + "" - + ProtoDefs.httpOkStatusCode + "" + "\r\n"); - sb.append("<" + ProtoDefs.authTokenElementName + ">" - + "<" + ProtoDefs.lifetimeElementName + ">" + authTokenLifetime + "" - + authToken + "" + "\r\n"); - sb.append("" + "\r\n"); + sb.append(ProtoDefs.xmlDeclaration); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.getAuthTokResponseElementName); sb.append(">\r\n"); + sb.append("<"); sb.append(ProtoDefs.statusElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.descriptionElementName); sb.append(">"); sb.append(ProtoDefs.httpOkStatusMsg); sb.append(""); + sb.append(ProtoDefs.httpOkStatusCode); sb.append("\r\n"); + sb.append("<"); sb.append(ProtoDefs.authTokenElementName); sb.append(">"); + sb.append("<"); sb.append(ProtoDefs.lifetimeElementName); sb.append(">"); sb.append(authTokenLifetime); sb.append(""); + sb.append(authToken); sb.append("\r\n"); + sb.append("\r\n"); // The message has now been built, save it. m_msg = sb.toString(); } - /* + /** * Returns a string containing the GetAuthTokRespMsg. + * + * @return Get authentication token response message string. */ public String toString() { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthToken.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthToken.java index 9f6a1a56..b8e258f4 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthToken.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/GetAuthToken.java @@ -30,37 +30,45 @@ import java.io.PrintWriter; /** * GetAuthToken Class. - * + *

* This class processes requests for tokens to authenticate an entity * to a particular service. * */ -public class GetAuthToken implements RpcMethod +public final class GetAuthToken implements RpcMethod { private SvcConfig m_svcConfig; private EnabledSvcsConfig m_enabledSvcsConfig; - /* + /** * Constructor. */ - public GetAuthToken() throws Exception + public GetAuthToken() { // Nothing to do at this time } - /* + /** * Initialize the Rpc method. + * + * @param svcConfig Service configuration object. + * @param enabledSvcsConfig Enabled services configuration object. + * @throws Exception */ - public void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception + public final void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception { m_svcConfig = svcConfig; m_enabledSvcsConfig = enabledSvcsConfig; } - /* + /** * Process Rpc. + * + * @param inStream Input stream with request. + * @param out Ouput print writer for reply. + * @throws IOException */ - public void invoke(InputStream inStream, PrintWriter out) throws IOException + public final void invoke(InputStream inStream, PrintWriter out) throws IOException { try { @@ -136,10 +144,12 @@ public class GetAuthToken implements RpcMethod } } - /* + /** * Return the method id. + * + * @return Method id. */ - public String getId() + public final String getId() { return "GetAuthToken"; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenConfig.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenConfig.java index d1b77f29..28aaf53e 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenConfig.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenConfig.java @@ -34,27 +34,27 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * IdenTokenConfig Class. - * + *

* This class obtains and maintains identity token configuration. * */ -public class IdenTokenConfig +public final class IdenTokenConfig { // Well known identity token configuration settings public final static String EncryptAttributes = "EncryptAttributes"; public final static String Attributes = "Attributes"; // Default configuration values - private String m_defaultEncryptAttributesValue = "false"; - private String m_defaultAttributesValue = "sn"; + private final String m_defaultEncryptAttributesValue = "false"; + private final String m_defaultAttributesValue = "sn"; - private Map m_tokenSettingsMap; + private final Map m_tokenSettingsMap; private String[] m_identityAttributes; - /* + /** * Class for handling parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private static final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_SETTING_ELEMENT_START = 1; @@ -64,14 +64,16 @@ public class IdenTokenConfig private final static String m_rootElementName = "settings"; - private Map m_keyMap; + private final Map m_keyMap; private int m_state; private String m_currentKey; - /* - * Constructor + /** + * Constructor. + * + * @param keyMap Key/Value map. */ - public SAXHandler(Map keyMap) + public SAXHandler(Map keyMap) { super(); @@ -80,10 +82,12 @@ public class IdenTokenConfig m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we are not in an invalid state if (m_state != DONE_PARSING) @@ -93,10 +97,16 @@ public class IdenTokenConfig } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -129,10 +139,15 @@ public class IdenTokenConfig } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -163,10 +178,15 @@ public class IdenTokenConfig } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Consume the data if in the right state if (m_state == AWAITING_SETTING_ELEMENT_DATA) @@ -181,29 +201,32 @@ public class IdenTokenConfig } } - /* + /** * Constructor which sets default configuration values. */ - public IdenTokenConfig() throws Exception + public IdenTokenConfig() { System.err.println("IdenTokenConfig()- Default"); // Create a map to keep track of the token settings - m_tokenSettingsMap = new HashMap(); + m_tokenSettingsMap = new HashMap(); // Set the default settings in our map m_tokenSettingsMap.put(Attributes, m_defaultAttributesValue); } - /* + /** * Constructor. + * + * @param idenTokenSettingsFileName Name of identity token settings file. + * @throws Exception */ public IdenTokenConfig(String idenTokenSettingsFileName) throws Exception { System.err.println("IdenTokenConfig()-"); // Create a map to keep track of the token settings - m_tokenSettingsMap = new HashMap(); + m_tokenSettingsMap = new HashMap(); try { @@ -228,7 +251,7 @@ public class IdenTokenConfig System.err.println("IdenTokenConfig()- Attributes not configured, defaulting them."); m_tokenSettingsMap.put(Attributes, m_defaultAttributesValue); } - String attributes = (String) m_tokenSettingsMap.get(Attributes); + String attributes = m_tokenSettingsMap.get(Attributes); m_identityAttributes = attributes.split(","); } catch (SAXException e) @@ -253,13 +276,16 @@ public class IdenTokenConfig } } - /* + /** * Returns the value associated with the specified setting. + * + * @param settingName Name of the setting. + * @return Value of the specified setting. */ - public String getSetting(String settingName) throws Exception + public final String getSetting(String settingName) { // Try to find the setting in our map - String value = (String) m_tokenSettingsMap.get(settingName); + String value = m_tokenSettingsMap.get(settingName); if (value == null) { System.err.println("IdenTokenConfig.getSetting()- Did not find setting " + settingName); @@ -284,10 +310,12 @@ public class IdenTokenConfig return value; } - /* + /** * Returns the identity attributes that must be included in the token. + * + * @return Identity Attributes. */ - public String[] getAttributes() throws Exception + public final String[] getAttributes() { return m_identityAttributes; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenSettingsEditor.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenSettingsEditor.java index 17e8631f..18ba1aa3 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenSettingsEditor.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdenTokenSettingsEditor.java @@ -28,8 +28,8 @@ package com.novell.casa.authtoksvc; * * Class for the creation and editing of identtoken.settings files. * - **/ -public class IdenTokenSettingsEditor implements IVerifySetting + */ +public final class IdenTokenSettingsEditor implements IVerifySetting { private static final String usage = "usage: IdenTokenSettingsEditor -op [settingName [settingValue]] -file settingsFilePath\n\n" + @@ -103,9 +103,9 @@ public class IdenTokenSettingsEditor implements IVerifySetting /** - * Applications Entry Point + * Applications Entry Point. * - * @param args + * @param args Arguments. */ public static void main(String[] args) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdentityToken.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdentityToken.java index 721157e7..119b59a8 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdentityToken.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/IdentityToken.java @@ -24,15 +24,22 @@ package com.novell.casa.authtoksvc; -/* +/** * IdentityToken Interface. - * + *

* This is the interface implemented by Identity Token Providers. */ public interface IdentityToken { - /* + /** * Initialize the token with parameters. + * + * @param identityId Identity identifier. + * @param sourceName Name of the realm where the identityId is valid. + * @param targetService Name of service being targeted. + * @param targetHost Host where the targeted service resides. + * @param svcConfig Service configuration object. + * @throws Exception */ void initialize(String identityId, String sourceName, @@ -40,54 +47,81 @@ public interface IdentityToken String targetHost, SvcConfig svcConfig) throws Exception; - /* + /** * Initialize the token object with encoded token string. + * + * @param encodedToken Encoded identity token string. + * @throws Exception */ void initialize(String encodedToken) throws Exception; - /* + /** * Returns encoded token string. * * IMPORTANT: The token string can not contain the substring "]]>" * within it. + * + * @return Encoded identity token string. + * @throws Exception */ String getEncodedToken() throws Exception; - /* + /** * Returns a string containing the identity token provider type. + * + * @return Identity token provider type. + * @throws Exception */ String getProviderType() throws Exception; - /* + /** * Returns a string containing the identity id. + * + * @return Identity identifier. + * @throws Exception */ String getIdentityId() throws Exception; - /* + /** * Returns a string containing the name associated with the * identity source. + * + * @return Name of the authentication realm. + * @throws Exception */ String getSourceName() throws Exception; - /* + /** * Returns a string containing the url associated with the * identity source. + * + * @return Url of the identity data source. + * @throws Exception */ String getSourceUrl() throws Exception; - /* + /** * Returns a string containing the name of the targeted service. + * + * @return Name of the targeted service. + * @throws Exception */ String getTargetService() throws Exception; - /* + /** * Returns a string containig the name of the host where the * targeted service resides. + * + * @return Name of the host where the targeted service resides. + * @throws Exception */ String getTargetHost() throws Exception; - /* + /** * Returns the attributes of the identity. + * + * @return Identity attributes. + * @throws Exception */ javax.naming.directory.Attributes getAttributes() throws Exception; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5Authenticate.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5Authenticate.java index a9a34b7c..a47014f3 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5Authenticate.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5Authenticate.java @@ -25,17 +25,11 @@ package com.novell.casa.authtoksvc; import java.io.Serializable; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; -import javax.naming.directory.Attributes; -import javax.naming.directory.BasicAttribute; -import javax.naming.directory.BasicAttributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchResult; @@ -53,13 +47,13 @@ import org.bandit.util.config.Realm; /** * Krb5Authenticate Class. - * + *

* This class implementes an authentication mechanism for * the processing of authentication requests utilizing a * Kerberos5 token. * */ -public class Krb5Authenticate implements AuthMechanism, Serializable +public final class Krb5Authenticate implements AuthMechanism, Serializable { private SvcConfig m_svcConfig; private AuthMechConfig m_mechConfig; @@ -72,17 +66,23 @@ public class Krb5Authenticate implements AuthMechanism, Serializable protected GSSName m_svcName; protected GSSCredential m_credential; - /* + /** * Krb5 Token Class. */ - private class Krb5Token + private final class Krb5Token { private String m_principalName = ""; - /* + /** + * Constructor. + *

* The format of the Krb5 token is as follows: - * + *

* Base64.encode(GSS-API Token data)); + * + * @param encodedToken Base64 encoded GSS-API token. + * @param parent Associated Krb5Authenticate object. + * @throws Exception */ public Krb5Token(String encodedToken, Krb5Authenticate parent) throws Exception { @@ -112,8 +112,10 @@ public class Krb5Authenticate implements AuthMechanism, Serializable } } - /* - * Returns the name of the authenticated principal + /** + * Returns the name of the authenticated principal. + * + * @return Principal name. */ public String getPrincipalName() { @@ -121,18 +123,22 @@ public class Krb5Authenticate implements AuthMechanism, Serializable } } - /* - * Constructor + /** + * Constructor. */ - public Krb5Authenticate() throws Exception + public Krb5Authenticate() { // Nothing to do at this time } - /* + /** * Initialize the mechanism. + * + * @param svcConfig Service configuration object. + * @param mechConfig Authentication mechanism configuration object. + * @throws Exception */ - public void init(SvcConfig svcConfig, AuthMechConfig mechConfig) throws Exception + public final void init(SvcConfig svcConfig, AuthMechConfig mechConfig) throws Exception { m_svcConfig = svcConfig; m_mechConfig = mechConfig; @@ -178,10 +184,14 @@ public class Krb5Authenticate implements AuthMechanism, Serializable } } - /* + /** * invoke() implementation. + * + * @param authReqMsg Authentication request message. + * @return Id of the authenticated entity. + * @throws Exception */ - public String invoke(AuthReqMsg authReqMsg) throws Exception + public final String invoke(AuthReqMsg authReqMsg) throws Exception { String identId = null; @@ -216,7 +226,7 @@ public class Krb5Authenticate implements AuthMechanism, Serializable } // Perform the search - NamingEnumeration answer = ctx.search(searchContext, + NamingEnumeration answer = ctx.search(searchContext, "(krbPrincipalName={0})", new String[] {krb5Token.getPrincipalName()}, controls); @@ -225,7 +235,7 @@ public class Krb5Authenticate implements AuthMechanism, Serializable if (answer.hasMore()) { // The search succeeded, set the identity id. - SearchResult sr = (SearchResult)answer.next(); + SearchResult sr = answer.next(); if (searchContext.equals("")) { identId = sr.getNameInNamespace(); @@ -254,10 +264,12 @@ public class Krb5Authenticate implements AuthMechanism, Serializable return identId; } - /* + /** * Return the mechanism id. + * + * @return Mechanism id. */ - public String getId() + public final String getId() { return "Krb5Authenticate"; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5_mechanism.settings b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5_mechanism.settings index 9c37571c..f8219dba 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5_mechanism.settings +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Krb5_mechanism.settings @@ -1,4 +1,4 @@ - + This is the authentication mechanism for the Krb5Authenticate scheme. The Krb5Authenticate scheme authenticates entities using Kerberos-V tokens. com.novell.casa.authtoksvc.Krb5Authenticate diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/ProtoDefs.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/ProtoDefs.java index e878a02d..d0d456eb 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/ProtoDefs.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/ProtoDefs.java @@ -24,20 +24,20 @@ package com.novell.casa.authtoksvc; -/* +/** * ProDefs Class. - * + *

* This class contains constants utilized in the Casa Client/Server * protocol. * */ -public class ProtoDefs +public final class ProtoDefs { /* * XML Declaration used in the Casa Client/Server protocol */ - public final static String xmlDeclaration = ""; + public final static String xmlDeclaration = ""; /* * XML Element Name Constants for the documents exchanged between the @@ -67,11 +67,6 @@ public class ProtoDefs public final static String mechanismElementName = "mechanism"; public final static String mechanismInfoElementName = "mechanism_info"; - /* - * Configurable operating parameters - */ - public String sessionTokenLifetime = "360"; - /* * HTTP Status Codes and Messages */ diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/PwdAuthenticate.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/PwdAuthenticate.java index e2d4e1b3..ba855571 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/PwdAuthenticate.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/PwdAuthenticate.java @@ -27,18 +27,13 @@ package com.novell.casa.authtoksvc; import java.io.Serializable; import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; import java.io.StringReader; import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; -import javax.naming.directory.BasicAttribute; -import javax.naming.directory.BasicAttributes; import javax.naming.directory.InitialDirContext; import javax.naming.directory.DirContext; -import javax.naming.directory.Attributes; import javax.naming.directory.SearchResult; import javax.naming.directory.SearchControls; import javax.naming.NamingException; @@ -49,29 +44,34 @@ import org.bandit.util.config.Realm; /** * PwdAuthenticate Class. - * + *

* This class implementes an authentication mechanism for * the processing of authentication requests utilizing a * username/password token. * */ -public class PwdAuthenticate implements AuthMechanism, Serializable +public final class PwdAuthenticate implements AuthMechanism, Serializable { private SvcConfig m_svcConfig; private AuthMechConfig m_mechConfig; - /* + /** * Password Token Class. */ - private class PwToken + private static final class PwToken { private String m_username = ""; private String m_password = ""; - /* + /** + * Constructor. + *

* The format of the Pw token is as follows: - * + *

* Base64.encode(new String("username\r\n" + "password\r\n")); + * + * @param encodedToken Base64 encoded password token. + * @throws IOException */ public PwToken(String encodedToken) throws IOException { @@ -87,44 +87,56 @@ public class PwdAuthenticate implements AuthMechanism, Serializable m_password = tokenReader.readLine(); } - /* - * Returns the username + /** + * Returns the username. + * + * @return Username. */ - public String getUsername() + public final String getUsername() { return m_username; } - /* - * Returns the password + /** + * Returns the password. + * + * @return password. */ - public String getPassword() + public final String getPassword() { return m_password; } } - /* - * Constructor + /** + * Constructor. */ - public PwdAuthenticate() throws Exception + public PwdAuthenticate() { // Nothing to do at this time } - /* + /** * Initialize the mechanism. + * + * @param svcConfig Service configuration object. + * @param mechConfig Authentication mechanism configuration object. + * @throws Exception */ - public void init(SvcConfig svcConfig, AuthMechConfig mechConfig) throws Exception + public final void init(SvcConfig svcConfig, AuthMechConfig mechConfig) throws Exception { m_svcConfig = svcConfig; m_mechConfig = mechConfig; } - /* + /** * invoke() implementation. + * + * @param authReqMsg Authentication request message. + * @return Id of the authenticated entity. + * @throws Exception */ - public String invoke(AuthReqMsg authReqMsg) throws Exception + public final String invoke(AuthReqMsg authReqMsg) throws Exception { String identId = null; @@ -159,7 +171,7 @@ public class PwdAuthenticate implements AuthMechanism, Serializable } // Perform the search - NamingEnumeration answer = ctx.search(searchContext, + NamingEnumeration answer = ctx.search(searchContext, "(cn={0})", new String[] {pwToken.getUsername()}, controls); @@ -171,7 +183,7 @@ public class PwdAuthenticate implements AuthMechanism, Serializable // Enumerate through the users returned checking the password while (answer.hasMore()) { - SearchResult sr = (SearchResult)answer.next(); + SearchResult sr = answer.next(); // Open a directory context for the user as a way of verifying its password try @@ -224,10 +236,12 @@ public class PwdAuthenticate implements AuthMechanism, Serializable return identId; } - /* + /** * Return the mechanism id. + * + * @return Mechanism id. */ - public String getId() + public final String getId() { return "PwdAuthenticate"; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Pwd_mechanism.settings b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Pwd_mechanism.settings index 5532e361..244145aa 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Pwd_mechanism.settings +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Pwd_mechanism.settings @@ -1,4 +1,4 @@ - + This is the authentication mechanism for the PwdAuthenticate scheme. The PwdAuthenticate scheme authenticates entities using username/password tokens. com.novell.casa.authtoksvc.PwdAuthenticate diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Rpc.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Rpc.java index 18a9f439..d30ed3e0 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Rpc.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/Rpc.java @@ -31,18 +31,17 @@ import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.ServletException; -import javax.servlet.http.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Rpc Servlet Class. - * + *

* This class processes Rpcs to the Authentication Token Service. * */ -public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet +public final class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { private static final long serialVersionUID = -8264027868130334613L; @@ -54,42 +53,44 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet protected ReconfigureThread m_reconfigureThread = null; protected int m_reconfigureInterval; // seconds - private Map m_methodsMap; + private Map m_methodsMap; - /* + /** * Reconfigure Thread Class. - * + *

* This class implements a runnable thread that reconfigures an Rpc Servlet instance. * */ - private class ReconfigureThread implements Runnable + private final class ReconfigureThread implements Runnable { - private Rpc m_rpc; - private Thread m_thread; + private final Rpc m_rpc; + private boolean m_run = true; - /* + /** * Constructor. + * + * @param rpc Rpc object. */ public ReconfigureThread (Rpc rpc) { m_rpc = rpc; - m_thread = new Thread(this); - m_thread.start(); + Thread thread = new Thread(this); + thread.start(); } - /* + /** * run() implementation. */ - public void run () + public final void run () { System.err.println("ReconfigureThread.run()- Running"); - while (true) + while (m_run) { // Sleep an ammount equal the reconfigure interval for the Rpc try { - m_thread.sleep(m_rpc.m_reconfigureInterval * 1000); + Thread.sleep(m_rpc.m_reconfigureInterval * 1000); } catch (InterruptedException e) { /* nothing to do */ } @@ -112,16 +113,16 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet } } - /* + /** * stop() implementation. */ - public void stop () + public final void stop () { - m_thread.stop(); + m_run = false; } } - /* + /** * Constructor. */ public Rpc () @@ -129,8 +130,10 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet super(); } - /* + /** * configureServlet() implementation. + * + * @throws Exception */ protected void configureServlet () throws Exception { @@ -152,7 +155,7 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet EnabledSvcsConfig enabledSvcsConfig = new EnabledSvcsConfig(m_configFolderPath, m_enabledSvcsOnly); // Create a map to keep track of the Rpc methods - Map methodsMap = new HashMap(); + Map methodsMap = new HashMap(); // Instantiate the Rpc Methods RpcMethod getAuthPolicy = new GetAuthPolicy(); @@ -171,8 +174,11 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet m_methodsMap = methodsMap; } - /* + /** * init() implementation. + * + * @param config Servlet configuration object. + * @throws ServletException */ public void init (ServletConfig config) throws ServletException { @@ -224,7 +230,7 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet } } - /* + /** * destroy() implementation. */ public void destroy () @@ -240,16 +246,26 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet } } - /* + /** * doGet() implementation. + * + * @param request Http servlet request object. + * @param response Http servlet response object. + * @throws ServletException + * @throws IOException */ protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } - /* + /** * doPost() implementation. + * + * @param request Http servlet request object. + * @param response Http servlet response object. + * @throws ServletException + * @throws IOException */ protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { @@ -266,7 +282,7 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet if (requestedMethod != null) { // Get the necessary method - RpcMethod method = (RpcMethod) m_methodsMap.get(requestedMethod); + RpcMethod method = m_methodsMap.get(requestedMethod); if (method != null) { // Invoke the method to process the Rpc @@ -276,21 +292,21 @@ public class Rpc extends javax.servlet.http.HttpServlet implements javax.servlet { // Unsupported method System.err.println("Rpc.doPost()- Unsupported method"); - response.sendError(response.SC_BAD_REQUEST); + response.sendError(HttpServletResponse.SC_BAD_REQUEST); } } else { // Missing method parameter System.err.println("Rpc.doPost()- Missing method parameter"); - response.sendError(response.SC_BAD_REQUEST); + response.sendError(HttpServletResponse.SC_BAD_REQUEST); } } catch (Exception e) { // tbd System.err.println("Rpc.doPost()- Exception caught: " + e.toString()); - response.sendError(response.SC_INTERNAL_SERVER_ERROR); + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } // Done sending out the reply diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/RpcMethod.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/RpcMethod.java index 3e23a49b..b17f0621 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/RpcMethod.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/RpcMethod.java @@ -26,28 +26,37 @@ package com.novell.casa.authtoksvc; import java.io.*; import java.io.PrintWriter; -import java.util.*; -/* +/** * RpcMethod Interface. - * + *

* This is the interface implemented by Rpc Methods. */ public interface RpcMethod { - /* + /** * Initialize the Rpc method. + * + * @param svcConfig Service configuration object. + * @param enabledSvcsConfig Enabled services configuration object. + * @throws Exception */ void init(SvcConfig svcConfig, EnabledSvcsConfig enabledSvcsConfig) throws Exception; - /* + /** * Process Rpc. + * + * @param inStream Input stream with request. + * @param out Ouput print writer for reply. + * @throws IOException */ void invoke(InputStream inStream, PrintWriter out) throws IOException; - /* + /** * Return the method id. + * + * @return Method id. */ String getId(); } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SessionToken.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SessionToken.java index 081b2915..ff476a1f 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SessionToken.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SessionToken.java @@ -37,27 +37,27 @@ import org.apache.axis.message.MessageElement; import javax.xml.namespace.QName; import java.io.*; -/* +/** * SessionToken class. -* +*

* This class constructs sessions tokens that clients can present to an ATS * to prove that an entity has been authenticated to a particular realm. * The session token consists of a SOAP message secured with WSSecurity * with the appropriate elements signed and with a timestamp. The body of * the SOAP message is as follows: -* -* -* realm value -* identity id value -* +*

+* +* realm value +* identity id value +* * */ -public class SessionToken +public final class SessionToken { private String m_id = null; private String m_realm = null; - private String m_token; + private final String m_token; static final String sessionTokenSoapMsg = "" + @@ -73,8 +73,14 @@ public class SessionToken static final private MessageContext axisMsgContext = new MessageContext(new AxisClient(new NullProvider())); - /* - * Constructor + /** + * Constructor. + * + * @param id Id of the authenticated identity. + * @param realm Realm where the identity id is valid. + * @param lifetime Token lifetime. + * @param svcConfig Service configuration object. + * @throws Exception */ public SessionToken(String id, String realm, @@ -98,9 +104,12 @@ public class SessionToken outStream.close(); } - /* + /** * Constructor given a session token string. The constructor * validates the token as part of its processing. + * + * @param token Session token string. + * @throws Exception */ public SessionToken(String token) throws Exception { @@ -150,18 +159,18 @@ public class SessionToken } /** - * Get SessionToken SOAP Message + * Get SessionToken SOAP Message. * - * @param realm String containing the identity token that should be part of the message - * @param identityId String containing the identity token type - * @param lifetime Lifetime that should be specified in the message timestamp (seconds) - * @param svcConfig Service Config object - * @return Message SessionToken message, null if the method fails. + * @param realm String containing the identity token that should be part of the message. + * @param identityId String containing the identity token type. + * @param lifetime Lifetime that should be specified in the message timestamp (seconds). + * @param svcConfig Service Config object. + * @return SessionToken message, null if the method fails. */ - private Message getMessage(String realm, - String identityId, - int lifetime, - SvcConfig svcConfig) + private static Message getMessage(String realm, + String identityId, + int lifetime, + SvcConfig svcConfig) { Message secureMessage; @@ -206,26 +215,32 @@ public class SessionToken return secureMessage; } - /* + /** * Returns a string containing the session token. + * + * @return Session token string. */ public String toString() { return Base64Coder.encode(m_token); } - /* - * Method to get the Identity Id + /** + * Method to get the Identity Id. + * + * @return Identity id. */ - public String getIdentId() throws Exception + public String getIdentId() { return m_id; } - /* - * Method to get the Identity Repository Reference (Realm). + /** + * Method to get the Identity Repository Reference (Realm). + * + * @return realm */ - public String getRealm() throws Exception + public String getRealm() { return m_realm; } diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SettingsFileUtil.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SettingsFileUtil.java index a5f4fca0..6cc6a8dd 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SettingsFileUtil.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SettingsFileUtil.java @@ -41,8 +41,8 @@ import java.io.FileInputStream; * * Class for the creation and editing of settings files. * - **/ -public class SettingsFileUtil + */ +public final class SettingsFileUtil { /** * Gets document for the specified settings file. @@ -52,7 +52,7 @@ public class SettingsFileUtil */ private static Document getSettingsFileDoc(String filePath) { - Document doc = null; + Document doc; try { @@ -92,7 +92,7 @@ public class SettingsFileUtil } /** - * Gets a starting settings document + * Gets a starting settings document. * * @param settings String with starting settings document. * @return Starting settings document. @@ -203,9 +203,10 @@ public class SettingsFileUtil /** * Gets value of the specified setting in the specified settings file. * - * @param filePath Path to the settings file. - * @param setting Name of the setting being queried. - * @return True if the operation is successfully performed. + * @param filePath Path to the settings file. + * @param setting Name of the setting being queried. + * @param settingVerifier Setting verifier object. + * @return True if the operation is successfully performed. */ public static boolean performGetOperation(String filePath, String setting, @@ -251,15 +252,16 @@ public class SettingsFileUtil /** * Sets the specified setting in the specified settings file. * - * @param filePath Path to the settings file. - * @param setting`` Name of the setting to be set. - * @param value Value to be assigned to the setting. - * @return True if the operation is successfully performed. + * @param filePath Path to the settings file. + * @param setting`` Name of the setting to be set. + * @param value Value to be assigned to the setting. + * @param settingVerifier Setting verifier object. + * @return True if the operation is successfully performed. */ public static boolean performSetOperation(String filePath, - String setting, - String value, - IVerifySetting settingVerifier) + String setting, + String value, + IVerifySetting settingVerifier) { boolean opPerformed = false; @@ -275,7 +277,7 @@ public class SettingsFileUtil // we find the one specified. Element root = doc.getDocumentElement(); Node child; - Node next = (Node) root.getFirstChild(); + Node next = root.getFirstChild(); boolean settingFound = false; while ((child = next) != null && settingFound == false) @@ -308,7 +310,7 @@ public class SettingsFileUtil try { // Remove text nodes - next = (Node) root.getFirstChild(); + next = root.getFirstChild(); while ((child = next) != null) { next = child.getNextSibling(); @@ -346,13 +348,14 @@ public class SettingsFileUtil /** * Remove specified setting from the specified settings file. * - * @param filePath Path to the settings file. - * @param setting Name of the setting to be removed. - * @return True if the operation is successfully performed. + * @param filePath Path to the settings file. + * @param setting Name of the setting to be removed. + * @param settingVerifier Setting verifier object. + * @return True if the operation is successfully performed. */ public static boolean performRemoveOperation(String filePath, - String setting, - IVerifySetting settingVerifier) + String setting, + IVerifySetting settingVerifier) { boolean opPerformed = false; @@ -367,7 +370,7 @@ public class SettingsFileUtil // we find the one specified. Element root = doc.getDocumentElement(); Node child; - Node next = (Node) root.getFirstChild(); + Node next = root.getFirstChild(); boolean settingFound = false; while ((child = next) != null && settingFound == false) @@ -384,7 +387,7 @@ public class SettingsFileUtil try { // Remove text nodes - next = (Node) root.getFirstChild(); + next = root.getFirstChild(); while ((child = next) != null) { next = child.getNextSibling(); diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcConfig.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcConfig.java index 4a1b44af..0b8aa761 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcConfig.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcConfig.java @@ -34,11 +34,11 @@ import org.xml.sax.helpers.XMLReaderFactory; /** * SvcConfig Class. - * + *

* This class obtains and maintains the service configuration. * */ -public class SvcConfig +public final class SvcConfig { // Well known service configuration settings // @@ -64,12 +64,12 @@ public class SvcConfig public final static String DefaultSigningKeyPasswordValue = "secret"; private static final String m_svcSettingsFileName = "svc.settings"; - private Map m_svcSettingsMap; + private final Map m_svcSettingsMap; - /* + /** * Class for handling Authentication Request parsing events. */ - private class SAXHandler extends org.xml.sax.helpers.DefaultHandler + private static final class SAXHandler extends org.xml.sax.helpers.DefaultHandler { private final static int AWAITING_ROOT_ELEMENT_START = 0; private final static int AWAITING_SETTING_ELEMENT_START = 1; @@ -79,14 +79,16 @@ public class SvcConfig private final static String m_rootElementName = "settings"; - private Map m_keyMap; + private final Map m_keyMap; private int m_state; private String m_currentKey; - /* - * Constructor + /** + * Constructor. + * + * @param keyMap Key/Value map. */ - public SAXHandler(Map keyMap) + public SAXHandler(Map keyMap) { super(); @@ -95,10 +97,12 @@ public class SvcConfig m_state = AWAITING_ROOT_ELEMENT_START; } - /* + /** * endDocument() implementation. + * + * @throws SAXException */ - public void endDocument () throws SAXException + public final void endDocument () throws SAXException { // Verify that we are not in an invalid state if (m_state != DONE_PARSING) @@ -108,10 +112,16 @@ public class SvcConfig } } - /* + /** * startElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @param atts Attributes. + * @throws SAXException */ - public void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException + public final void startElement (String uri, String name, String qName, org.xml.sax.Attributes atts) throws SAXException { // Proceed based on our state switch (m_state) @@ -144,10 +154,15 @@ public class SvcConfig } } - /* - * endElement() immplementation. + /** + * endElement() implementation. + * + * @param uri Uri. + * @param name Local name. + * @param qName Qualified name. + * @throws SAXException */ - public void endElement (String uri, String name, String qName) throws SAXException + public final void endElement (String uri, String name, String qName) throws SAXException { // Proceed based on our state switch (m_state) @@ -178,10 +193,15 @@ public class SvcConfig } } - /* + /** * character() implementation. + * + * @param ch Characters with element data. + * @param start Start position in the character array. + * @param length Number of characters to use in the array. + * @throws SAXException */ - public void characters (char ch[], int start, int length) throws SAXException + public final void characters (char ch[], int start, int length) throws SAXException { // Consume the data if in the right state if (m_state == AWAITING_SETTING_ELEMENT_DATA) @@ -195,8 +215,12 @@ public class SvcConfig } } - /* + /** * Constructor. + * + * @param appRootPath Path to application root. + * @param svcConfigPath Path to the service configuration. + * @throws Exception */ public SvcConfig(String appRootPath, String svcConfigPath) throws Exception { @@ -205,7 +229,7 @@ public class SvcConfig System.err.println("SvcConfig()- SvcConfigPath = " + svcConfigPath); // Create a map to keep track of the service settings - m_svcSettingsMap = new HashMap(); + m_svcSettingsMap = new HashMap(); try { @@ -246,13 +270,17 @@ public class SvcConfig } } - /* + /** * Returns the value associated with the specified setting. + * + * @param settingName Name of the setting. + * @return Value of the specified setting. + * @throws Exception */ - public String getSetting(String settingName) throws Exception + public final String getSetting(String settingName) throws Exception { // Try to find the setting in our map - String value = (String) m_svcSettingsMap.get(settingName); + String value = m_svcSettingsMap.get(settingName); if (value == null) { System.err.println("SvcConfig.getSetting()- Did not find setting " + settingName); diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcSettingsEditor.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcSettingsEditor.java index 9b9cf175..77b40eec 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcSettingsEditor.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/SvcSettingsEditor.java @@ -30,8 +30,8 @@ import java.io.File; * * Class for the creation and editing of svc.settings files. * - **/ -public class SvcSettingsEditor implements IVerifySetting + */ +public final class SvcSettingsEditor implements IVerifySetting { private static final String usage = "usage: SvcSettingsEditor -op [settingName [settingValue]] -file settingsFilePath\n\n" + @@ -66,7 +66,7 @@ public class SvcSettingsEditor implements IVerifySetting * @param setting The name of the setting being checked. * @return True if the specified setting is valid. */ - public boolean validSetting(String setting) + public final boolean validSetting(String setting) { boolean result = false; @@ -96,8 +96,8 @@ public class SvcSettingsEditor implements IVerifySetting * @param value The value of the specified setting. * @return The formal name of the setting if found to be valid. */ - public String validSettingNameAndValue(String setting, - String value) + public final String validSettingNameAndValue(String setting, + String value) { String validSetting = null; @@ -182,7 +182,7 @@ public class SvcSettingsEditor implements IVerifySetting /** * Applications Entry Point * - * @param args + * @param args Argument. */ public static void main(String[] args) { diff --git a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/WSSecurity.java b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/WSSecurity.java index e00133d0..c2493255 100644 --- a/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/WSSecurity.java +++ b/CASA-auth-token/server-java/Svc/src/com/novell/casa/authtoksvc/WSSecurity.java @@ -44,15 +44,15 @@ import java.util.Set; import java.util.Vector; -/* +/** * WSSecurity Class. - * + *

* This class provides static methods for securing and verifying SOAP messages. SOAP messages * are secured by adding a timestamp and signing the appropriate elements using methods and * headers defined by WS* specifications. * */ -public class WSSecurity +public final class WSSecurity { static final private WSSecurityEngine secEngine = new WSSecurityEngine(); static final private Crypto crypto = CryptoFactory.getInstance(); @@ -60,6 +60,9 @@ public class WSSecurity /** * Creates a SOAP message from a document. * + * @param doc Message document. + * @return SOAP message. + * @throws Exception */ private static Message toSOAPMessage(Document doc) throws Exception { @@ -70,34 +73,33 @@ public class WSSecurity return (org.apache.axis.Message) factory.createMessage(null, in); } - /*** + /** * Returns the first element that containes an Id with value - * uri and namespace. - *

- * + * uri and namespace. + *

* Copyright Note: The code for this function was copied from file * WSSecurityUtil.java from package org.apache.ws.security.util. * The Copyright notice on this file is as follows: - * + *

* Copyright 2003-2006 The Apache Software Foundation, or their licensors, as * appropriate. - * + *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + *

* http://www.apache.org/licenses/LICENSE-2.0 - * + *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * - * @param startNode Where to start the search - * @param value Value of the Id attribute - * @param namespace Namespace URI of the Id - * @return The found element or null + * @param startNode Where to start the search. + * @param value Value of the Id attribute. + * @param namespace Namespace URI of the Id. + * @return The found element or null. */ private static Element findElementById(Node startNode, String value, @@ -155,9 +157,9 @@ public class WSSecurity /** * Verifies SOAP envelope timestamp and signatures. * - * @param envelope SOAP envelope with timestamp - * @return boolean True if verification succeeds - * @throws Exception on error + * @param envelope SOAP envelope with timestamp + * @return True if verification succeeds. + * @throws Exception */ public static boolean verifyMessage(SOAPEnvelope envelope) throws Exception { @@ -231,12 +233,12 @@ public class WSSecurity /** * Add timestamp and sign SOAP message in compliance with WS-Security. * - * @param envelope String containing a SOAP envelope - * @param timeToLive Value to set the timestamp timeToLive parameter in seconds - * @param svcConfig Service Config object - * @param includeCert True if the message should include the Public Certificate - * @return Message Signed and timestamped SOAP message - * @throws Exception on error + * @param envelope String containing a SOAP envelope + * @param timeToLive Value to set the timestamp timeToLive parameter in seconds + * @param svcConfig Service Config object + * @param includeCert True if the message should include the Public Certificate + * @return Signed and timestamped SOAP message + * @throws Exception */ public static Message secureSOAPEnvelope(SOAPEnvelope envelope, int timeToLive,