Skip to Content.
Sympa Menu

mace-opensaml-users - Re: Help starting openSAML

Subject: OpenSAML user discussion

List archive

Re: Help starting openSAML


Chronological Thread 
  • From: Chad La Joie <>
  • To:
  • Subject: Re: Help starting openSAML
  • Date: Thu, 25 Jan 2007 11:56:12 -0500
  • Organization: University Information Systems

One minor note for you Paul, you can use the XMLHelper.nodeToString(Node) method or writeNode(Node,Writer) to use the DOM LS functions to write nodes to strings or writers respectively.

Thank you for the example code.

Paul Hethmon wrote:
A couple of things here:

1. Make sure you followed the steps to put the endorsed versions of
Xalan and Xerces in place.
2. What you do next depends on which iteration of the library you are
using. I'm using the latest revision from svn (at least updated in the
last week) and here's some sample code which should compile and run:

// -----
org.opensaml.DefaultBootstrap.bootstrap();

// Use the OpenSAML Configuration singleton to get a builder factory
object
XMLObjectBuilderFactory builderFactory =
org.opensaml.Configuration.getBuilderFactory();
// First get a builder for AuthnRequest
AuthnRequestBuilder arb = (AuthnRequestBuilder)
builderFactory.getBuilder(AuthnRequest.DEFAULT_ELEMENT_NAME);
// And one for Issuer
IssuerBuilder ib = (IssuerBuilder)
builderFactory.getBuilder(Issuer.DEFAULT_ELEMENT_NAME);
// And one for Subject
SubjectBuilder sb = (SubjectBuilder)
builderFactory.getBuilder(Subject.DEFAULT_ELEMENT_NAME);
// build an AuthnRequest object
AuthnRequestImpl auth = (AuthnRequestImpl) arb.buildObject();
// Build the Issuer object
Issuer newIssuer = ib.buildObject();
newIssuer.setValue("MyIssuer");
auth.setIssuer(newIssuer);
auth.setProviderName("MyProviderName");
auth.setAssertionConsumerServiceURL("http://www.example.com";);
auth.setDestination("http://www.example.com";);
//auth.setAssertionConsumerServiceIndex(0);
//auth.setAttributeConsumingServiceIndex(0);
auth.setID("someuniqueidhere");
auth.setVersion(org.opensaml.common.SAMLVersion.VERSION_20);
DateTime dt = new DateTime();
auth.setIssueInstant(dt);
MarshallerFactory marshallerFactory =
org.opensaml.Configuration.getMarshallerFactory();
Marshaller marshaller = marshallerFactory.getMarshaller(auth);
String msg = "";
Element authElement = null;
if (marshaller == null) {
msg = "unable to locate marshaller for [" +
newIssuer.getElementQName() + "]";
} else {
authElement = marshaller.marshall(auth);
}
DOMImplementationRegistry registry =
DOMImplementationRegistry.newInstance();

DOMImplementationLS impl =
(DOMImplementationLS)registry.getDOMImplementation("LS");

LSSerializer writer = impl.createLSSerializer();
String str = writer.writeToString(authElement);
str = str.replace("<", "&lt;");
str = str.replace(">", "&gt;");
// -----
It's not the greatest or prettiest, but it's something you can start
with.

Paul



-----Original Message-----
From: Subash Devkota [mailto:] Sent: Thursday, January 25, 2007 7:59 AM
To:

Subject: Help starting openSAML

Hi all,

I want to test and implement openSAML API. I have got the jar and code.

But, I am getting problem how to start using it. I could not find any
good tutorial or example for simply creating SAML objects and writing
to xml.

I found one example code from
https://spaces.internet2.edu/display/SHIB/OSTwoUsrManJavaCreateFromScrat
ch
but got error using it.

public static void main(String args[]) throws Exception{
// Get the builder factory
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
// Get the subject builder based on the subject element name
SubjectBuilder builder = (SubjectBuilder ) builderFactory.getBuilder(Subject.DEFAULT_ELEMENT_NAME);
System.out.println("subject builder is :"+builder);
// Create the subject
Subject subject = (Subject)builder.buildObject();
I got builder value in second step as null and get NullPointerException
in third step as shown below:

subject builder is :null
Exception in thread "main" java.lang.NullPointerException

Can any one help me how to do it. Also, I would be grateful if anyone
can show me the best example or tutorial for getting started with
openSAML.

Thanks in advance
Subash PRIVACY NOTICE

This email and any attachments may be confidential and/or privileged.
Use of the information contained in this email by anyone other than the
intended recipient is strictly prohibited. If you have received this
email in error, please notify the sender by replying to this message and
delete this email.

--
Chad La Joie 2052-C Harris Bldg
OIS-Middleware 202.687.0124



Archive powered by MHonArc 2.6.16.

Top of Page