Monday, September 19, 2011

Shibboleth Attributes: What am I getting???

Sometimes it's necessary to know exactly what attributes are being sent by Shibboleth.  It may be that you need to know the names of the attributes themselves, or maybe your business rules require knowledge of what institution the incoming users are with, or even what they had for breakfast that morning...

But how to tell what you're getting?

Well, there's a page you can visit on your Shibboleth server that will tell you exactly what attributes and values are being sent.  Nice, huh?  Problem is there's a little bit of configuration you have to do.

Open your shibboleth2.xml file.

Within that file there should be some Handler tags.  Each of these tags allows Shibboleth to display specific pages with specific details on them.  Session displays the attribute values we want.  You can also use the Status handler for diagnostic purposes, but this information is tightly controlled so you'd need to set the acl attribute of that element to the IP address of the machine you want to view it from.

To see your attributes, just navigate to

https://[domainname]/Shibboleth.sso/Session

That will display the attributes being passed.  You could replace Session with Status to see SAML information about your configuration.

Friday, September 9, 2011

ICEfaces 2.0 Components Aren't Rendering!

Yep, I'm making the switch, and if you're searching for this phrase, I bet you are, too.

The thing is, ICEfaces 2.0 is basically re-using the components from ICEfaces 1.8 (Which is why you're using the same namespaces at the top of your XHTML file.)  Unfortunately, it does mean that you have to specifically tell your application to use those older components.  

Add these lines to your web.xml:

<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/xmlhttp/*
</servlet-mapping>

And make sure you're importing the icefaces-compat.jar into your app.

For more information, click here.