package WSS4J;
import java.security.Key;
import javax.crypto.spec.SecretKeySpec;
import com.ibm.xml.dsig.util.Base64;
public class UserNamePasswordTextTokenWithReference extends SignatureToken
{
private static String tokenWSUId = "";
private static String userName = "";
public UserNamePasswordTextTokenWithReference(
String userName,
String tokenWSUId,
WSSMessage wssMessage
){
super( tokenWSUId, userName, wssMessage );
this.tokenWSUId = tokenWSUId;
this.userName = userName;
}
public String getType()
{
return "UserNamePasswordTextTokenWithReference";
}
public String getXMLString()
{
String encodedKeyString = "";
try{
byte[] secretKeyBytes = key.getEncoded();
encodedKeyString = new Base64().encode(secretKeyBytes);
}catch( Exception e ) {
System.out.println(
"Exception in UserNameTokenWithPasswordText's setSecret...." );
e.printStackTrace();
}
return
"\n<wsse:UsernameToken wsu:Id=\"" + tokenWSUId + "\"" +
"\nxmlns:wsu=\"http://schemas.xmlsoap.org/ws/2002/07/utility\"" +
"\nxmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\">" +
"\n<wsse:Username>" + userName + "</wsse:Username>" +
"\n<wsse:Password Type=\"#PasswordText\">" +
"\n" + encodedKeyString +
"\n</wsse:Password>" +
"\n</wsse:UsernameToken>";
}
public void setSecret(byte[] secretBytes)
{
try{
key = (Key) new SecretKeySpec(secretBytes, "DESede");
}catch( Exception e ) {
System.out.println(
"Exception in UserNameTokenWithPasswordText's setSecret...." );
e.printStackTrace();
}
}
}