<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>C&#039;est la Vie...</title>
	<atom:link href="http://bug4free.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bug4free.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 22 Dec 2011 16:39:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bug4free.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>C&#039;est la Vie...</title>
		<link>http://bug4free.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bug4free.wordpress.com/osd.xml" title="C&#039;est la Vie..." />
	<atom:link rel='hub' href='http://bug4free.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Neustar</title>
		<link>http://bug4free.wordpress.com/2010/10/19/neustar/</link>
		<comments>http://bug4free.wordpress.com/2010/10/19/neustar/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 22:38:49 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[identity management]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[neustar]]></category>
		<category><![CDATA[ultraviolet]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=504</guid>
		<description><![CDATA[Since last week, I have officially become a Neustar employee (I had been consulting for a while). I really owe this opportunity to none other than =PeterD (Peter you really need to update your blog!). Although I&#8217;m primarily involved in spec writing for the UltraViolet project (bringing some additional perspective from the federated identity angle), I also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=504&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since last week, I have officially become a <a title="Neustar Inc." href="http://www.neustar.biz" target="_blank">Neustar</a> employee (I had been consulting for a while). I really owe this opportunity to none other than =PeterD (Peter you really need to update <a title="PeterD" href="http://identity4all.blogspot.com/" target="_blank">your blog</a>!).</p>
<p>Although I&#8217;m primarily involved in spec writing for the <a title="Ultraviolet" href="http://www.uvvu.com" target="_blank">UltraViolet</a> project (bringing some additional perspective from the federated identity angle), I also expect to have a cross-organization role in providing support for questions that pertain to identity management, web security or RESTful architecture.</p>
<p>Lots of work (strike that: tons of work!) and lots of smart people in the company (we hire!)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/504/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/504/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/504/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=504&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2010/10/19/neustar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>Oauth Library for Jersey &#8211; Percent Encoding Fix</title>
		<link>http://bug4free.wordpress.com/2010/02/03/oauth-fix/</link>
		<comments>http://bug4free.wordpress.com/2010/02/03/oauth-fix/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 07:51:03 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Authorization]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[signature]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=479</guid>
		<description><![CDATA[I&#8217;m happy to report that we&#8217;ve fixed an issue in the percent encoding step of our OAuth signature library for the Jersey framework. The issue reported was caused by the fact that we were using Java&#8217;s URLEncoder and URLDecoder classes to compute OAuth&#8217;s signature base string. Unfortunately those classes do not perform an RFC3986 compliant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=479&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to report that we&#8217;ve fixed an issue in the percent encoding step of our OAuth signature library for the Jersey framework. The issue reported was caused by the fact that we were using Java&#8217;s <a title="Java SE 6 URLEncoder" href="http://java.sun.com/javase/6/docs/api/java/net/URLEncoder.html" target="_blank">URLEncoder</a> and <a title="Java SE 6 Decoder" href="http://java.sun.com/javase/6/docs/api/java/net/URLDecoder.html" target="_blank">URLDecoder</a> classes to compute OAuth&#8217;s signature base string. Unfortunately those classes do not perform an <a title="RFC3986" href="http://www.ietf.org/rfc/rfc3986.txt" target="_blank">RFC3986</a> compliant encoding which is required in OAuth. The main difference is that a space character will be encoded as a + when we need it to be escaped as a %20 (more info <a href="http://www.subbu.org/blog/2008/02/uri-escaping-and-javaneturlencoder" target="_blank">here</a>).</p>
<p>To fix this, we&#8217;ve chosen to leverage Jersey&#8217;s <a title="Jersey UriComponent" href="https://jersey.dev.java.net/nonav/apidocs/1.1.5/jersey/index.html?com/sun/jersey/api/uri/UriComponent.html" target="_blank">UriComponent</a> class. There is one notable difference though with how one would encode a URI (see <a title="URI" href="///Users/hubertlvg/Devel/jdk_6u10-docs/api/java/net/URI.html" target="_blank">here</a> for a very detailed explanation of URIs): OAuth says that the signature base string is built by concatenating the request method, the request URL and the normalized parameters (with &amp; to separate them) <span style="text-decoration:underline;">and</span> that those elements must be encoded (prior to concatenation). In effect we are re-encoding elements that are already encoded. As <a title="Paul Sandoz" href="http://blogs.sun.com/sandoz/" target="_blank">Paul</a> noted, it&#8217;s as if we wanted to pass the signature base string in a URI&#8230; I remember this possibility was mentioned in conversations about debugging OAuth deployment but that&#8217;s the only case I remember for this.</p>
<p>Anyway, to illustrate this, below is the piece of code where the <em>bulk</em> of the action happens:</p>
<p><code><br />
<span style="color:#339966;"> StringBuffer buf = new StringBuffer(request.getRequestMethod().toUpperCase());<br />
URI uri = constructRequestURL(request);<br />
String tp = uri.getScheme();<br />
buf.append('&amp;').append(UriComponent.encode(tp, UriComponent.Type.SCHEME));<br />
tp = uri.getAuthority();<br />
buf.append("%3A%2F%2F").append(UriComponent.encode(tp, UriComponent.Type.AUTHORITY));<br />
tp = uri.getPath();<br />
buf.append(UriComponent.encode(tp, UriComponent.Type.PATH_SEGMENT));<br />
buf.append('&amp;').append(UriComponent.encode(normalizeParameters(request, params), UriComponent.Type.QUERY_PARAM));</span><br />
</code></p>
<p>Our testing code now also includes elements with spaces to make sure we got it right (thanks to Michael Werle).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/479/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=479&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2010/02/03/oauth-fix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>This is it!</title>
		<link>http://bug4free.wordpress.com/2010/01/21/this-is-it/</link>
		<comments>http://bug4free.wordpress.com/2010/01/21/this-is-it/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 11:24:26 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sun microsystems]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=472</guid>
		<description><![CDATA[Here we are now. The European commission has officially blessed Oracle&#8217;s bid for Sun Microsystems. I do think Oracle is a great opportunity to rebound and move forward even though sadness and regrets are very much present today. Thanks to James Gosling for creating this great picture below (his blog post is here):<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=472&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here we are now. The European commission has <a href="http://europa.eu/rapid/pressReleasesAction.do?reference=IP/10/40&amp;format=HTML&amp;aged=0&amp;language=EN&amp;guiLanguage=en" target="_blank">officially</a> blessed Oracle&#8217;s bid for Sun Microsystems. I do think Oracle is a great opportunity to rebound and move forward even though sadness and regrets are very much present today. Thanks to James Gosling for creating this great picture below (his blog post is <a title="James Gosling's post" href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">here</a>):</p>
<div id="attachment_474" class="wp-caption aligncenter" style="width: 520px"><a href="http://bug4free.files.wordpress.com/2010/01/sunripsmall.jpg"><img class="size-full wp-image-474" title="SunRIP" src="http://bug4free.files.wordpress.com/2010/01/sunripsmall.jpg?w=510&#038;h=399" alt="" width="510" height="399" /></a><p class="wp-caption-text">Sun RIP (by James Gosling)</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/472/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=472&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2010/01/21/this-is-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>

		<media:content url="http://bug4free.files.wordpress.com/2010/01/sunripsmall.jpg" medium="image">
			<media:title type="html">SunRIP</media:title>
		</media:content>
	</item>
		<item>
		<title>OAuth 1.0a is Available</title>
		<link>http://bug4free.wordpress.com/2010/01/20/oauth-1-0a-is-available/</link>
		<comments>http://bug4free.wordpress.com/2010/01/20/oauth-1-0a-is-available/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:34:15 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[1.0a]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[signature]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=467</guid>
		<description><![CDATA[Thanks to my colleague Hua Cui, our OAuth implementation for OpenSSO is now upgraded to the latest 1.0a revision of the spec. There is no legacy support for (now deprecated) the 1.0 version (the version field hasn&#8217;t been changed in OAuth which, to me at least, does suggest deprecation of the previous release). Since the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=467&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Thanks to my colleague Hua Cui, our <a title="OpenSSO's OAuth" href="https://opensso.dev.java.net/source/browse/opensso/products/oauth" target="_blank">OAuth implementation for OpenSSO</a> is now upgraded to the latest 1.0a revision of the spec. There is no legacy support for (now deprecated) the 1.0 version (the version field hasn&#8217;t been changed in OAuth which, to me at least, does suggest deprecation of the previous release).</p>
<p>Since the signature mechanism in itself is not changed, there&#8217;s no update necessary to our <a title="Jersey OAuth" href="http://wikis.sun.com/display/Jersey/OAuth" target="_blank">Jersey OAuth</a> signature library.</p>
<p>Give it a try!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=467&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2010/01/20/oauth-1-0a-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenID for OpenSSO &#8211; Example of an OP</title>
		<link>http://bug4free.wordpress.com/2010/01/06/openid-op-example/</link>
		<comments>http://bug4free.wordpress.com/2010/01/06/openid-op-example/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:15:23 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=438</guid>
		<description><![CDATA[Many people reading my previous posts about our OpenID extension for OpenSSO asked me where is the OP (OpenID Provider) code in the OpenSSO repository. The answer is that there&#8217;s no code for it (right now) and the reason for this is that we thought deployers would likely develop their own OP with all the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=438&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many people reading my previous posts about our OpenID extension for OpenSSO asked me where is the OP (OpenID Provider) code in the OpenSSO repository. The answer is that there&#8217;s no code for it (right now) and the reason for this is that we thought deployers would likely develop their own OP with all the appropriate checks in place. But since I do get these requests and to complete the example I described in previous posts, Below is the source code for the simplest (i.e. dumbest) OP one can think of.</p>
<p>To refresh our memories after the holiday break, the role of the OP web application is to hand out the metadata related to the OpenID identifiers of (presumably known) users. That metadata (in the form of an html page with metadata placed in the &lt;head&gt; section) points to the location of the related OpenID server (for both versions 1 &amp; 2).</p>
<p>In the present example, we will simply hand out that information to any appropriately formed URL (see this <a title="Deploying OpenID 2.0" href="http://bug4free.wordpress.com/2009/08/24/openid2-o-opensso/" target="_blank">post</a>). A real OP should probably verify that the OpenID identifier used corresponds to an existing user.</p>
<p>Please note that for the code below I chose to make my life easier and used the <a title="Jersey" href="jersey.dev.java.net/" target="_blank">Jersey</a> API to quickly create a simple web application. You can of course use servlets instead (or whatever) but REST is so easy with Jersey!</p>
<p>Apologies for the formatting but the string is way too long to fit in any way I tried. The key parts of that string are the two &lt;link rel=&#8230;&gt; elements which define the OpenID endpoints. Of course you&#8217;ll need to change those to match your deployment.</p>
<p><code><br />
import javax.ws.rs.Path;<br />
import javax.ws.rs.GET;<br />
import javax.ws.rs.Produces;<br />
import javax.ws.rs.core.Context;<br />
import javax.ws.rs.core.UriInfo;</code></p>
<p><code>/**<br />
* REST Web Service<br />
*<br />
* @author Hubert A. Le Van Gong &lt;hubert.levangong at Sun.COM&gt;<br />
*/</code></p>
<p><code>@Path("/{id}")<br />
public class OP {<br />
@Context<br />
private UriInfo context;</code></p>
<p><code>String standard_profile = "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"<br />
+ "&lt;!DOCTYPE html PUBLIC\"-//W3C//DTD XHTML 1.0 Transitional//EN\"<br />
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\" &gt;\n"<br />
+"&lt;html xmlns=\"http://www.w3.org/1999/xhtml\"&gt;\n"<br />
+ "   &lt;head&gt;\n"<br />
+"       &lt;link rel=\"openid.server\" href=\"http://openid.example.com:49723/openid/service\"/&gt;\n"<br />
+"       &lt;link rel=\"openid2.provider\" href=\"http://openid.example.com:49723/openid/service\"/&gt;\n"<br />
+"       &lt;meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/&gt;\n"<br />
+"       &lt;title&gt;OpenSSO OpenID provider&lt;/title&gt;\n"<br />
+"       &lt;link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" /&gt;\n"<br />
+"   &lt;/head&gt;\n"<br />
+"   &lt;body&gt;\n"<br />
+"       &lt;div class=\"body\"&gt;\n"<br />
+"           &lt;h2&gt;This OpenID provider is based upon OpenID4Java &amp; supports the following protocols&lt;/h2&gt;\n"<br />
+"           &lt;UL&gt;\n"<br />
+"               &lt;li&gt;OpenID Authentication 2.0&lt;/li&gt;\n"<br />
+"               &lt;li&gt;OpenID Authentication 1.1 (in compatibility mode)&lt;/li&gt;\n"<br />
+"               &lt;li&gt;OpenID Attribute Exchange 1.0&lt;/li&gt;\n"<br />
+"               &lt;li&gt;OpenID Simple Registration 1.0 and 1.1, draft 1&lt;/li&gt;\n"<br />
+"           &lt;/UL&gt;\n"<br />
+"       &lt;/div&gt;\n"<br />
+"           &lt;h2&gt; To see the OpenID ID, view the source of this html page (usually achieved by right-clicking on the page)&lt;/h2&gt;"<br />
+"       &lt;div&gt;\n"<br />
+"       &lt;/div&gt;\n"<br />
+"   &lt;/body&gt;\n"<br />
+"&lt;/html&gt;\n";</code></p>
<p><code>/** Creates a new instance of OP */<br />
public OP() {<br />
}</code></p>
<p><code> </code></p>
<p><code> /**<br />
* Retrieves representation of an instance of OP<br />
* @return an instance of java.lang.String<br />
*/<br />
@GET<br />
@Produces("text/html")<br />
public String gethtml() {<br />
return standard_profile;<br />
}<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/438/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/438/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/438/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=438&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2010/01/06/openid-op-example/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>OAuth in Jersey: RSA-SHA1 support is in!</title>
		<link>http://bug4free.wordpress.com/2009/12/15/oauth-jersey-rsa/</link>
		<comments>http://bug4free.wordpress.com/2009/12/15/oauth-jersey-rsa/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 11:08:34 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[jax-rs]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[RSA-SHA1]]></category>
		<category><![CDATA[signature]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=410</guid>
		<description><![CDATA[In previous posts, I mentioned we have implemented an OAuth signature library for Jersey (the JAX-RS reference implementation). This signature library sports client and server filters to insulate the application from most of the OAuth signature process (signing on the client side and verifying the signature on the server). Our main goal is to allow [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=410&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In previous posts, I mentioned we have implemented an OAuth signature library for <a title="Jersey" href="https://jersey.dev.java.net" target="_blank">Jersey</a> (the JAX-RS reference implementation). This signature library sports client and server filters to insulate the application from most of the OAuth signature process (signing on the client side and verifying the signature on the server). Our main goal is to allow Jersey developers to adopt OAuth to secure their messages. Our initial need though, was for our <a title="OpenSSO" href="http://www.opensso.org" target="_blank">OpenSSO</a> project which now includes an OAuth Token Service.</p>
<p>In doing some testing on the OpenSSO use of OAuth, we noted there&#8217;s was a bug in the server verification code of an RSA signature. I&#8217;m happy to announce that the fix is in so you can now happily use RSA-SHA1 to secure OAuth messages (in OpenSSO or simply using Jersey). Similarly to HMAC-SHA1, we have created a comprehensive test for the RSA-SHA1, reusing the same test case used here. If you want to use the library, you should take a look at the test source code.</p>
<p>One thing to note is that all signature algorithm implementations (HMAC-SHA1, RSA-SHA1, more could be added.) use the same interface object class <em><a title="Jersey OAuthSignature" href="https://jersey.dev.java.net/nonav/apidocs/latest/contribs/jersey-oauth/oauth-signature/com/sun/jersey/oauth/signature/OAuthSignature.html" target="_blank">OAuthSignature</a></em> method. The challenge with that is that those algorithm require different types of secrets (as reflected in the OAuth spec). It is especially true for key-based algorithms like RSA-SHA1 where the <em>sign()</em> method requires a different secret (the private key) than the <em>verify()</em> method (called by the server, using the client&#8217;s public key).</p>
<p>In our implementation both methods take an <em><a title="Jersey OAuthSecrets" href="https://jersey.dev.java.net/nonav/apidocs/latest/contribs/jersey-oauth/oauth-signature/com/sun/jersey/oauth/signature/OAuthSecrets.html" target="_blank">OAuthSecrets</a></em> object in argument. In the case of a public/private key-based algorithm, this object is expected to contain the private key (or public key in the verification case) within the <em>consumerSecret</em> field. This is indicated in the library&#8217;s Javadoc.</p>
<p>On the client side, signing (with RSA-SHA1) a message is quite simple. All you need to sign your message is three elements: the request, the OAuth parameters and your public key. The code below shows how you&#8217;d do that with Jersey:<br />
<code> </code></p>
<p><code></p>
<pre><span style="color:#008000;">        OAuthParameters params = </span><span class="keyword-directive"><span style="color:#008000;">new</span></span><span style="color:#000000;"><span style="color:#008000;"> </span><span style="color:#008000;">OAuthParameters</span><span style="color:#008000;">().</span><span style="color:#008000;">realm</span><span style="color:#008000;">(REALM).
         consumerKey(CONSUMER_KEY).
         signatureMethod(RSA_SIGNATURE_METHOD).timestamp(RSA_TIMESTAMP).
         nonce(RSA_NONCE).version(VERSION);

        OAuthSecrets secrets = </span></span><span class="keyword-directive"><span style="color:#008000;">new</span></span><span style="color:#008000;"> OAuthSecrets().consumerSecret(RSA_PRIVKEY);

        OAuthSignature.sign(request, params, secrets);</span></pre>
<p></code></p>
<p>On the server side, we retrieve the parameters from the request and use the public key (obtained from the client&#8217;s X509 certificate). A short example would be:</p>
<p><code> </code></p>
<p><code></p>
<pre><span style="color:#008000;">        params = </span><span class="keyword-directive"><span style="color:#008000;">new</span></span><span style="color:#008000;"> OAuthParameters();
        params.readRequest(request);
        secrets = </span><span class="keyword-directive"><span style="color:#008000;">new</span></span><span style="color:#008000;"> OAuthSecrets().consumerSecret(RSA_CERTIFICATE);
        assertTrue(OAuthSignature.verify(request, params, secrets));</span></pre>
<p></code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/410/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/410/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/410/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=410&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2009/12/15/oauth-jersey-rsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Should We Be Consistent?</title>
		<link>http://bug4free.wordpress.com/2009/11/09/consistency/</link>
		<comments>http://bug4free.wordpress.com/2009/11/09/consistency/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:32:26 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SJWS]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Web Server]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=406</guid>
		<description><![CDATA[A little tip: deploying a war file on different containers / application servers can lead to different results. Although their scope widely differs, Sun has 2 offerings when it comes to deploying a war file: Sun Java System Web Server (SJWS) and Glassfish. Well, it turns out that Glassfish replaces the entire content of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=406&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A little tip: deploying a war file on different containers / application servers <strong>can</strong> lead to different results. Although their scope widely differs, Sun has 2 offerings when it comes to deploying a war file: <a title="Sun JSWS" href="http://www.sun.com/software/products/web_srvr/index.xml" target="_blank">Sun Java System Web Server</a> (SJWS) and <a title="Glassfish" href="https://glassfish.dev.java.net" target="_blank">Glassfish</a>.</p>
<p>Well, it turns out that Glassfish replaces the entire content of the directory where the application is deployed while Sun JSWS will simply overwrite the existing files, thus leaving all other files in place. In a recent case, I had copied some properties file in that directory (after a first deployment) and was surprised to find them there after a re-deploy.</p>
<p>Now, I know that I&#8217;m not really supposed to mess around with files of a deployed war but I find it to be a good reminder of the sometimes not so subtle differences between containers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/406/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=406&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2009/11/09/consistency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t Try This At Home</title>
		<link>http://bug4free.wordpress.com/2009/11/06/dont-try-this-at-home/</link>
		<comments>http://bug4free.wordpress.com/2009/11/06/dont-try-this-at-home/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:25:33 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[realm]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=397</guid>
		<description><![CDATA[When it comes to software, I like to try all available features (even the most obscure ones) and sometimes I end up in a situation where my chances of recovery seem pretty slim. I recently managed just that by setting my OpenSSO top realm (/) to inactive&#8230; Why would I do such thing I hear [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=397&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When it comes to software, I like to try all available features (even the most obscure ones) and sometimes I end up in a situation where my chances of recovery seem pretty slim. I recently managed just that by setting my <a title="OpenSSO" href="https://opensso.dev.java.net" target="_blank">OpenSSO</a> top realm (/) to <em>inactive</em>&#8230;<br />
Why would I do such thing I hear you say? Well I was trying to solve some issues related to our OpenID 2.0 extension and was experimenting with various realms, so there you have it&#8230;</p>
<p>The result of this great inspiration of mine is that I could not log anymore to the admin console; a tad annoying&#8230;<br />
The solution (thanks to Shivaram!) is to edit the LDAP configuration tree and change the value of <em>ou=services,dc=opensso,dc=java,dc=net</em> and set it back to active. That&#8217;s it, you&#8217;re in!</p>
<p>Now me thinks we should change the console so as to prevent this from being possible&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/397/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/397/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/397/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=397&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2009/11/06/dont-try-this-at-home/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>A Lightweight Approach</title>
		<link>http://bug4free.wordpress.com/2009/11/06/dsee-lightweight-approach/</link>
		<comments>http://bug4free.wordpress.com/2009/11/06/dsee-lightweight-approach/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:01:15 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[DSEE]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=392</guid>
		<description><![CDATA[The great thing about being involved in a community like OpenSSO is that you get to meet people (virtually at least) with all kinds of background and knowledge. In my last blog entry I described the standard way of deploying DSEE on Solaris (using DSCC and Java Web Console). While discussing just that on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=392&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The great thing about being involved in a community like <a title="OpenSSO" href="https://opensso.dev.java.net/" target="_blank">OpenSSO</a> is that you get to meet people (virtually at least) with all kinds of background and knowledge. In my <a title="DSEE install" href="http://bug4free.wordpress.com/2009/10/23/dsee_install/" target="_blank">last blog entry</a> I described the <em>standard</em> way of deploying DSEE on Solaris (using DSCC and Java Web Console). While discussing just that on the <a title="OpenSSO IRC" href="http://wikis.sun.com/display/OpenSSO/OpenSSO+IRC+Channel" target="_blank">OpenSSO IRC channel</a>, <em>nettezzaumana</em> described a DSCC-free process to install DSEE. He&#8217;s posted it as a comment to my previous entry, check it out!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/392/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=392&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2009/11/06/dsee-lightweight-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing Directory Server on Solaris</title>
		<link>http://bug4free.wordpress.com/2009/10/23/dsee_install/</link>
		<comments>http://bug4free.wordpress.com/2009/10/23/dsee_install/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:43:02 +0000</pubDate>
		<dc:creator>Hubert</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Directory Server]]></category>
		<category><![CDATA[DSEE]]></category>
		<category><![CDATA[OpenDS]]></category>
		<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://bug4free.wordpress.com/?p=362</guid>
		<description><![CDATA[As you all know, Directory Services are key to OpenSSO. We support many of them but, beside OpenDS which we use for our embedded configuration store, one of the best LDAP Directory server out there is Sun&#8217;s Directory Server Enterprise Edition (DSEE for short). In a typical deployment you will want to store user data [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=362&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you all know, Directory Services are key to <a title="OpenSSO" href="https://opensso.dev.java.net" target="_blank">OpenSSO</a>. We support many of them but, beside <a title="OpenDS" href="https://opends.dev.java.net/" target="_blank">OpenDS</a> which we use for our embedded configuration store, one of the best LDAP Directory server out there is Sun&#8217;s <a title="Sun DSEE" href="http://www.sun.com/software/products/directory_srvr_ee/index.jsp" target="_blank">Directory Server Enterprise Edition</a> (DSEE for short). In a typical deployment you will want to store user data on a separate Directory Service.</p>
<p>I always thought that, starting from a freshly installed Solaris 10 box, the deployment of DSEE is everything but smooth. This post lists the initial steps one has to take to perform such deployment and follow the DSEE <a title="DSSE Admin Guide" href="http://docs.sun.com/app/docs/doc/819-0995" target="_blank">Administration guide</a> (your sole reference on the matter) . This was also strongly inspired by some excellent posts (listed at the end).</p>
<p>First a few assumptions:</p>
<ul>
<li>Our starting point is a machine that runs  Solaris 10. I used the latest release (Sept. &#8217;09) available <a title="Solaris 10 download" href="http://www.sun.com/software/solaris/get.jsp#download" target="_blank">here</a>. All updates were applied after the installation.</li>
<li>I&#8217;ll assume the installation is done as root. This might not be the optimal approach, security-wise, but I&#8217;m keeping it simple here.</li>
<li>I&#8217;m installing DSEE via the JES 5 installer. JES (<a title="JES" href="http://www.sun.com/software/javaenterprisesystem/index.jsp" target="_blank">Java Enterprise System</a>) is our main delivery system for lots of Sun&#8217;s software. The neat thing about JES is that it bundles applications together (e.g. Access Manager 7.1 and DSEE). In the present case I only installed DSEE and DSCC, the DS Control Center (a useful interface to administer DSEE deployments).</li>
</ul>
<p>Now onto the steps:</p>
<ol>
<li>The first step to be done is to configure DSCC by performing:<br />
<em>&lt;dsee install dir&gt;/dscc6/bin/dsccsetup initialize</em><br />
Doing so results in an error from cacao: <em>Cannot find property: [cacao embedded].</em><br />
The problem here is that JES reverted the version of cacao (Solaris&#8217; Common Agent Container (more info <a title="Cacao" href="https://common-agent-container.dev.java.net/" target="_blank">here</a>) to a previous one.</li>
<li>We need to reinstall cacao from the Solaris 10 CD. Look for the 2 following packages: SUNWcacaort, SUNWcacaodtrace To install them, change to the packages directory and enter:<br />
<em>pkgadd -d . SUNWcacaort</em><br />
<em>pkgadd -d . SUNWcacaodtrace</em></li>
<li>Start cacao: <em>/usr/sbin/cacaoadm start</em><br />
You can verify it&#8217;s running fine with: <em>cacaoadm status</em></li>
<li>You can now re-attempt to run the initialization (step 1). You should see a message saying that the DSCC Registry has been created successfully.</li>
<li>If you want to make sure cacao starts upon reboot, enter:<br />
<em>/usr/sbin/cacaoadm enable</em></li>
<li>The the admin guide says to access DSCC through the Java Web Console in your browser. Well, we need to make sure it is running first<em>:<br />
/usr/sbin/smcwebserver status</em><br />
Most likely it&#8217;s not&#8230;</li>
<li>Start the Java Web Server with:<br />
<em>smcwebserver start</em><br />
Now you can access it with your browser and &#8230; Oops&#8230; it only listens on your localhost (127.0.0.1).<br />
To fix this, use svccfg:<br />
<em># /usr/sbin/svccfg</em><br />
<em># svc:&gt; select system/webconsole<br />
# svc:/system/webconsole&gt; setprop options/tcp_listen=true<br />
# svc:</em><em>/system/webconsole&gt;quit<br />
</em>You&#8217;ll have to restart the Java Web Console at this point:<br />
<em>/usr/sbin/smcwebserver restart</em></li>
<li>The Java Web Console is now accessible on the standard port 6789 (using https) and Voilà, the configuration of DSEE as specified in the Administration guide can now proceed unhindered.</li>
</ol>
<p>Was this useful? Did you have a different DSEE install experience? If so, please let me know!</p>
<p>Some very useful links I used for this post:</p>
<ol>
<li>http://oldmangriffous.blogspot.com/2008/10/centralised-authentication-on-solaris_26.html</li>
<li>http://www.tjhsst.edu/admin/livedoc/index.php/Sun_Java_System_Directory_Server</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bug4free.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bug4free.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bug4free.wordpress.com/362/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bug4free.wordpress.com&amp;blog=5498788&amp;post=362&amp;subd=bug4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bug4free.wordpress.com/2009/10/23/dsee_install/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6bada1f4a66ee55c5a96fe1b34f49652?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Hubert</media:title>
		</media:content>
	</item>
	</channel>
</rss>
