<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3723157275867690143</id><updated>2012-01-28T16:45:07.849+08:00</updated><category term='OpenMail'/><category term='OpenAM'/><category term='Microsoft'/><category term='MySQL'/><category term='OpenSSO'/><category term='Corporate Email Hosting'/><category term='SharePoint'/><category term='Sun Messaging Server'/><category term='Gmail'/><category term='Mobile Office'/><category term='OpenLDAP'/><category term='Sun Identity Manager'/><category term='Oracle Fusion Middleware'/><category term='Sun Directory Server'/><category term='Tomcat'/><category term='iPlanet Web Server'/><category term='Sun Calendar Server'/><category term='General'/><category term='Oracle Database'/><category term='Sun Portal Server'/><category term='OpenDS'/><category term='AV/AS'/><category term='Solaris'/><category term='Sun Access Manager'/><category term='LifeRay'/><category term='Sun Cluster'/><category term='OpenDJ'/><title type='text'>azlabs</title><subtitle type='html'>. Portal . Messaging . Identity</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default?start-index=101&amp;max-results=100'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>312</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8546359522920142454</id><published>2012-01-04T18:17:00.003+08:00</published><updated>2012-01-05T16:13:08.896+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Policy Agent 2.2 in CDSSO mode connecting to OpenAM Issue</title><content type='html'>One of my customers has a legacy Policy Agent 2.2 configured in CDSSO mode. It needs to connect to the newly installed OpenAM 9.5.3 server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Mt6pUknDTzc/TwVbiez_W9I/AAAAAAAABGQ/dDlRBASKCb4/s1600/jee-pa-overview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" rea="true" src="http://3.bp.blogspot.com/-Mt6pUknDTzc/TwVbiez_W9I/AAAAAAAABGQ/dDlRBASKCb4/s320/jee-pa-overview.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;No luck... It was not a breeze porting over... We kept getting the following error:&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: red;"&gt;WARNING: &lt;/span&gt;&lt;span style="color: red;"&gt;LdapSPValidator.validateAndGetRestriction: Invalid agent ID: http://stqa.as.com.sg:80/&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://azlabs.blogspot.com/2012/01/openam-403x-error.html" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally after much research, I found a &lt;a href="http://docs.oracle.com/cd/E19462-01/819-4683/adjaa/index.html" target="_blank"&gt;link&lt;/a&gt; from Oracle. Not exactly the same deployment, but similar sympton. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;The Web Proxy Agent 2.2-01 in Cross Domain Single Sign-on mode does not work with Access Manager 7.1 Patch . The agentRootURL requirement was added as a security measure to ensure that CDC is handing off ssotoken cookie to trusted agents running at known URLs.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Workaround&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to Access Control &amp;gt; / (Top Level Realm) &amp;gt; Agents &amp;gt; 2.2 Agents &amp;gt; UrlAccessAgent&lt;/li&gt;&lt;li&gt;Key in agentRootURL=http://stqa.as.com.sg:80/ to Agent Key Value(s).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Jackpot!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8546359522920142454?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8546359522920142454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2012/01/policy-agent-22-in-cdsso-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8546359522920142454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8546359522920142454'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2012/01/policy-agent-22-in-cdsso-mode.html' title='Policy Agent 2.2 in CDSSO mode connecting to OpenAM Issue'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Mt6pUknDTzc/TwVbiez_W9I/AAAAAAAABGQ/dDlRBASKCb4/s72-c/jee-pa-overview.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5405277176727632992</id><published>2012-01-04T12:17:00.002+08:00</published><updated>2012-01-04T12:17:25.097+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenAM: #403x error</title><content type='html'>Sometimes, when a Policy Agent is configured and this very not-so-helpful error #403x appears on the browser, one needs to investigate further...&lt;br /&gt;&lt;br /&gt;Usually,&amp;nbsp;I&amp;nbsp;systematically scan through the following log files:&lt;br /&gt;1. Agent&amp;nbsp;debug log files (at&amp;nbsp;node where PA is installed)&lt;br /&gt;2.&amp;nbsp;OpenAM debug log files (usually Authentication will reveal what's wrong)&lt;br /&gt;&lt;br /&gt;In this particular case, the Policy Agent was not&amp;nbsp;defined properly in OpenAM.&lt;br /&gt;&lt;br /&gt;amCDC:01/04/2012 12:07:36:371 PM SGT: Thread[http-2020-4,5,main] WARNING: &lt;span style="color: red;"&gt;&lt;strong&gt;LdapSPValidator.validateAndGetRestriction: Invalid agent ID: http://stqa.as.com.sg:80/&lt;/strong&gt;&lt;/span&gt; amCDC:01/04/2012 12:07:36:371 PM SGT: Thread[http-2020-4,5,main] &lt;span style="color: red;"&gt;&lt;strong&gt;ERROR: Invalid Agent: Could not get agent for the realm java.lang.Exception: Invalid Agent: Not configured in directory at&lt;/strong&gt;&lt;/span&gt; com.iplanet.services.cdc.LdapSPValidator.validateAndGetRestriction(LdapSPValidator.java:160) at com.iplanet.services.cdc.CDCServlet.redirectWithAuthNResponse(CDCServlet.java:394) at com.iplanet.services.cdc.CDCServlet.doGetPost(CDCServlet.java:355) at com.iplanet.services.cdc.CDCServlet.doGet(CDCServlet.java:270) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:662) &lt;br /&gt;&lt;br /&gt;amCDC:01/04/2012 12:07:36:371 PM SGT: Thread[http-2020-4,5,main] ERROR: &lt;span style="color: red;"&gt;&lt;strong&gt;CDCServlet.doGetPost java.lang.Exception: Invalid Agent: Could not get agent for the realm at&lt;/strong&gt;&lt;/span&gt; com.iplanet.services.cdc.LdapSPValidator.validateAndGetRestriction(LdapSPValidator.java:229) at com.iplanet.services.cdc.CDCServlet.redirectWithAuthNResponse(CDCServlet.java:394) at com.iplanet.services.cdc.CDCServlet.doGetPost(CDCServlet.java:355) at com.iplanet.services.cdc.CDCServlet.doGet(CDCServlet.java:270) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.sun.identity.setup.AMSetupFilter.doFilter(AMSetupFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:662)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5405277176727632992?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5405277176727632992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2012/01/openam-403x-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5405277176727632992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5405277176727632992'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2012/01/openam-403x-error.html' title='OpenAM: #403x error'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1476342546729449566</id><published>2011-12-21T13:02:00.003+08:00</published><updated>2011-12-21T13:02:31.986+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><title type='text'>OpenDJ Replication Server error during handshake phase</title><content type='html'>&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-NYSgwXjiDcs/TvFnK7TfkQI/AAAAAAAABGE/n0AV61N9PFc/s1600/opendj-2-4-1-has-been-released.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" oda="true" src="http://2.bp.blogspot.com/-NYSgwXjiDcs/TvFnK7TfkQI/AAAAAAAABGE/n0AV61N9PFc/s320/opendj-2-4-1-has-been-released.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I have a pair of OpenDJ servers running in MMR mode. Customer has a sudden requirement to change IP addresses. &lt;br /&gt;&lt;br /&gt;Simple request.. So I went ahead to modify the /etc/hosts. As simple as that.&lt;br /&gt;&lt;br /&gt;No. The following error is observed in OpenDJ errors logs on both nodes:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;[21/Dec/2011:12:46:32 +0800] category=SYNC severity=SEVERE_ERROR msgID=14942387 msg=Replication server 30809 was attempting to connect to replication server a125.az.com/172.8.8.125:8888 but &lt;span style="color: red;"&gt;has disconnected in handshake phase&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[21/Dec/2011:12:46:32 +0800] category=SYNC severity=SEVERE_ERROR msgID=14942263 msg=In Replication server Replication Server 8888 30809: replication servers 200.2.2.125:8888 and 172.8.8.125:8888 have the same ServerId : 20398&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;:&lt;/em&gt;&lt;br /&gt;&lt;em&gt;:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;[21/Dec/2011:12:46:36 +0800] category=SYNC severity=SEVERE_ERROR msgID=14942316 msg=Unable to send monitor data request for domain "cn=admin data" to replication server RS(30809) due to the following error: &lt;span style="color: red;"&gt;Socket closed&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I resolved this by restarting both nodes. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1476342546729449566?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1476342546729449566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/12/opendj-replication-server-error-during.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1476342546729449566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1476342546729449566'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/12/opendj-replication-server-error-during.html' title='OpenDJ Replication Server error during handshake phase'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-NYSgwXjiDcs/TvFnK7TfkQI/AAAAAAAABGE/n0AV61N9PFc/s72-c/opendj-2-4-1-has-been-released.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3137832851457039551</id><published>2011-12-20T23:12:00.003+08:00</published><updated>2011-12-20T23:14:57.613+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenAM Fedlet</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;A customer asked me what's a OpenAM Fedlet and its usage.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-I4wIlUgT_UE/TvCi0y-ofOI/AAAAAAAABF0/giB0QiDxZJo/s1600/Screen+Shot+2011-12-20+at+10.58.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://1.bp.blogspot.com/-I4wIlUgT_UE/TvCi0y-ofOI/AAAAAAAABF0/giB0QiDxZJo/s400/Screen+Shot+2011-12-20+at+10.58.01+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;There isn't a lot of detailed document on OpenAM Fedlet. But &lt;a href="http://azlabs.sg/forgerock/openssofedlet.pdf" target="_blank"&gt;this article&lt;/a&gt; from Oracle is great!&lt;br /&gt;&lt;br /&gt;ForgeRock's documentation only has a section on &lt;a href="http://openam.forgerock.org/doc/dev-guide/OpenAM-Dev-Guide/chap-fedlet-java.html" target="_blank"&gt;Using Fedlets in Java Web Applications&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In layman term, this is my interpretation of Fedlet:&lt;br /&gt;&lt;br /&gt;Basically, big organizations with budget will be using OpenAM Federation service.&lt;br /&gt;&lt;br /&gt;e.g. One organization will install OpenAM to act as IdP (Identity Provider), while the rest of the organizations will enable their applications to be SAMLv2 -ready. These applications will then act as SP (Service Provider).&lt;br /&gt;&lt;br /&gt;However, this takes time and effort and money.&lt;br /&gt;&lt;br /&gt;Smaller organizations will definitely not be able to overhaul their applications to be SAMLv2-ready, as it is not cost-effective. So the way to go is to&amp;nbsp;just deploy Fedlets (generated from OpenAM servers).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-AVj62r847AQ/TvClweTeD4I/AAAAAAAABF8/92SLRSz-IiE/s1600/Screen+Shot+2011-12-20+at+11.11.48+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="95" src="http://2.bp.blogspot.com/-AVj62r847AQ/TvClweTeD4I/AAAAAAAABF8/92SLRSz-IiE/s200/Screen+Shot+2011-12-20+at+11.11.48+PM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Fedlet will act like a bridge between the OpenAM server (acting as IdP) and the applications.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's simple and neat.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3137832851457039551?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3137832851457039551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/12/openam-fedlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3137832851457039551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3137832851457039551'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/12/openam-fedlet.html' title='OpenAM Fedlet'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-I4wIlUgT_UE/TvCi0y-ofOI/AAAAAAAABF0/giB0QiDxZJo/s72-c/Screen+Shot+2011-12-20+at+10.58.01+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5411314751873057285</id><published>2011-12-09T20:49:00.001+08:00</published><updated>2011-12-09T20:55:04.894+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Overriding OpenAM classes</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8B-KoDoRes8/TuIDtJ2M58I/AAAAAAAABFo/wPwLCGA2cRU/s1600/OpenAM-web-transparent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" mda="true" src="http://4.bp.blogspot.com/-8B-KoDoRes8/TuIDtJ2M58I/AAAAAAAABFo/wPwLCGA2cRU/s1600/OpenAM-web-transparent.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I was trying to change some behavior in OpenAM core components and I find the easiest way to do it is: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Modify the OpenAM source code&lt;/li&gt;&lt;li&gt;Compile the Java class&lt;/li&gt;&lt;li&gt;Deploy the compiled class in ../WEB-INF/classes&lt;/li&gt;&lt;li&gt;Restart OpenAM&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The application container will let /WEB-INF/classes take priority over the class in the jar file residing in the /WEB-INF/lib directory. Nice!&lt;br /&gt;&lt;br /&gt;In fact, it's not recommended to put back the modified class into the original jar file. I find that ugly in practice.&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5411314751873057285?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5411314751873057285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/12/overriding-openam-classes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5411314751873057285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5411314751873057285'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/12/overriding-openam-classes.html' title='Overriding OpenAM classes'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-8B-KoDoRes8/TuIDtJ2M58I/AAAAAAAABFo/wPwLCGA2cRU/s72-c/OpenAM-web-transparent.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5074768826438157182</id><published>2011-11-30T16:12:00.001+08:00</published><updated>2011-11-30T16:16:33.190+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><title type='text'>APR based Apache Tomcat Native Library</title><content type='html'>I&amp;nbsp;want better performance running OpenAM on Tomcat application server, thus I spent the effort to configure APR (Apache Portable Runtime) for Tomcat.&lt;br /&gt;&lt;br /&gt;As usual (this is not my 1st time), I always encounter this error whenever I start Tomcat after configuration:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: red;"&gt;Nov 30, 2011 4:01:23 PM org.apache.catalina.core.AprLifecycleListener init&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: red;"&gt;INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /am/bin/jdk1.6.0_27/jre/lib/amd64/server:/am/bin/jdk1.6.0_27/jre/lib/amd64:/am/bin/jdk1.6.0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;This is a very silly mistake for not following the instruction carefully. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;The resolution is to add the following to catalina.sh:&lt;br /&gt;&lt;br /&gt;[am@testMachine bin]$ vi catalina.sh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JAVA_OPTS="-server -Xms2048M -Xmx2048M &lt;strong&gt;&lt;span style="color: #cc0000;"&gt;-Djava.library.path=/usr/local/apr/lib&lt;/span&gt;&lt;/strong&gt;" &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5074768826438157182?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5074768826438157182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/apr-based-apache-tomcat-native-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5074768826438157182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5074768826438157182'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/apr-based-apache-tomcat-native-library.html' title='APR based Apache Tomcat Native Library'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8643456853878224700</id><published>2011-11-14T16:03:00.001+08:00</published><updated>2011-11-14T16:17:38.236+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Agent-less SSO</title><content type='html'>Sometimes, legacy or COTS (commerical off the shelf) web applications cannot be customized to integrate with Policy Agent. That's where ESSO comes into play (and that explains why ESSO solution is never cheap, besides being cumbersome to deploy. of course, my opinion).&lt;br /&gt;&lt;br /&gt;BitKoo and OpenIG have&amp;nbsp;solutions that attempt to resolve this issue.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ATwmkFhDwsI/TsDMjoDAmJI/AAAAAAAABFI/dZEId7QLoYc/s1600/openig.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="78" nda="true" src="http://3.bp.blogspot.com/-ATwmkFhDwsI/TsDMjoDAmJI/AAAAAAAABFI/dZEId7QLoYc/s200/openig.logo.PNG" width="200" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-aRPmKVoPToM/TsDMlDamBhI/AAAAAAAABFQ/kVreVWYxRzI/s1600/bitkoo.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="46" nda="true" src="http://3.bp.blogspot.com/-aRPmKVoPToM/TsDMlDamBhI/AAAAAAAABFQ/kVreVWYxRzI/s200/bitkoo.logo.PNG" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Basically, a Proxy/Gateway is introduced. This is where the access to the actual application is intercepted and password being replayed &lt;strong&gt;&lt;em&gt;securely&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QY5dfqdTmSk/TsDMmE6XIXI/AAAAAAAABFY/DZpZ78HQZss/s1600/bitkoo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" nda="true" src="http://2.bp.blogspot.com/-QY5dfqdTmSk/TsDMmE6XIXI/AAAAAAAABFY/DZpZ78HQZss/s320/bitkoo.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_OzO2BZMdIU/TsDMiN03sII/AAAAAAAABFA/Y_y_bGyQnn0/s1600/openig.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" nda="true" src="http://1.bp.blogspot.com/-_OzO2BZMdIU/TsDMiN03sII/AAAAAAAABFA/Y_y_bGyQnn0/s320/openig.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the case of BitKoo, user credential is stored securely in a keystore. &lt;br /&gt;&lt;br /&gt;On the other hand, OpenIG (aka ApexIdentity Gateway) integrates, out-of-the-box, with all 3rd party web access management solutions (e.g. OpenAM). &lt;br /&gt;&lt;br /&gt;The key point is any web application can come on-board&amp;nbsp;without ever modifying the target application again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8643456853878224700?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8643456853878224700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/agent-less-sso.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8643456853878224700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8643456853878224700'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/agent-less-sso.html' title='Agent-less SSO'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ATwmkFhDwsI/TsDMjoDAmJI/AAAAAAAABFI/dZEId7QLoYc/s72-c/openig.logo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6702468923851950864</id><published>2011-11-11T13:36:00.001+08:00</published><updated>2011-11-11T13:51:38.572+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Policy Agent debugging</title><content type='html'>&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QwTtIqMsuWg/Try1yPPsn2I/AAAAAAAABEw/wHYGJZX3aTw/s1600/openam.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" nda="true" src="http://2.bp.blogspot.com/-QwTtIqMsuWg/Try1yPPsn2I/AAAAAAAABEw/wHYGJZX3aTw/s1600/openam.logo.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you have deployed Policy Agent in Centralized mode and have set the debug level to&lt;strong&gt;&lt;em&gt; Message&lt;/em&gt;&lt;/strong&gt;, yet when the policy agent container is started and you only see the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jEw29tDKX2M/Try2DFL6iQI/AAAAAAAABE4/9lERAMti57g/s1600/debug.level.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" nda="true" src="http://4.bp.blogspot.com/-jEw29tDKX2M/Try2DFL6iQI/AAAAAAAABE4/9lERAMti57g/s320/debug.level.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;=======================================&lt;br /&gt;2011-10-31 09:56:35.408 -1 20816:1f8957d0 all: Version: 3.0-04&lt;br /&gt;2011-10-31 09:56:35.408 -1 20816:1f8957d0 all:&lt;br /&gt;2011-10-31 09:56:35.408 -1 20816:1f8957d0 all: Build Date: Fri Jul 29 00:05:09 BST 2011&lt;br /&gt;2011-10-31 09:56:35.408 -1 20816:1f8957d0 all: Build Machine: constable.internal.forgerock.com&lt;br /&gt;2011-10-31 09:56:35.408 -1 20816:1f8957d0 all: =======================================&lt;br /&gt;&lt;br /&gt;The log is very verbose when the debug level is set to Message. Then definitely there is something wrong. &lt;br /&gt;&lt;br /&gt;There is one more tweak to it...&lt;br /&gt;&lt;br /&gt;Go to the ../Agent_001/config directory and amend the following 2 properties files:&lt;br /&gt;&lt;br /&gt;1. OpenSSOAgentBootstrap.properties&lt;br /&gt;2. OpenSSOAgentConfiguration.properties&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Look for the following:&lt;br /&gt;&lt;br /&gt;# AGENT DEBUG LOG LEVEL&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;com.sun.identity.agents.config.debug.level&lt;/strong&gt;&lt;/span&gt; = &lt;span style="color: red;"&gt;&lt;strong&gt;all:5&lt;/strong&gt;&lt;/span&gt; (default is empty)&lt;br /&gt;&lt;br /&gt;Restart your policy agent container. You'll see more log statements. &lt;br /&gt;&lt;br /&gt;This method was helpful to me when there was some misconfiguration in the network or load-balancer stickiness issues. Of course, there are many more scenarios that could potentially happen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6702468923851950864?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6702468923851950864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/policy-agent-debugging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6702468923851950864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6702468923851950864'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/policy-agent-debugging.html' title='Policy Agent debugging'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-QwTtIqMsuWg/Try1yPPsn2I/AAAAAAAABEw/wHYGJZX3aTw/s72-c/openam.logo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2659588342584741051</id><published>2011-11-09T23:32:00.002+08:00</published><updated>2011-11-09T23:32:35.326+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile Office'/><title type='text'>BlackBerry Desktop Software for Mac</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;With BlackBerry Desktop Software for Mac, synchronizing musics from my iTunes to the smartphone has become a breeze!&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yp6idO692CI/TrqcYBEs3EI/AAAAAAAABEo/R1HtL2jr3ow/s1600/Screen+Shot+2011-11-09+at+11.28.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://3.bp.blogspot.com/-yp6idO692CI/TrqcYBEs3EI/AAAAAAAABEo/R1HtL2jr3ow/s400/Screen+Shot+2011-11-09+at+11.28.15+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Of course, there are Calendar, Contacts, Notes and Tasks sync. But I'm using Google Calendar and not Exchange, so that's not useful for me.&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2659588342584741051?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2659588342584741051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/blackberry-desktop-software-for-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2659588342584741051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2659588342584741051'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/blackberry-desktop-software-for-mac.html' title='BlackBerry Desktop Software for Mac'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-yp6idO692CI/TrqcYBEs3EI/AAAAAAAABEo/R1HtL2jr3ow/s72-c/Screen+Shot+2011-11-09+at+11.28.15+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5605171879359166933</id><published>2011-11-09T00:27:00.001+08:00</published><updated>2011-11-09T00:27:32.795+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'></title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you are deploying SharePoint, this &lt;a href="http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx"&gt;link&lt;/a&gt; is very helpful for your pre-sales activities.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Gl7tY0Wwds0/TrlXocQDyFI/AAAAAAAABEg/xM-0nO5TzF0/s1600/Screen+Shot+2011-11-09+at+12.21.24+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Gl7tY0Wwds0/TrlXocQDyFI/AAAAAAAABEg/xM-0nO5TzF0/s1600/Screen+Shot+2011-11-09+at+12.21.24+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are Foundation, Standard and Enterprise editions. You need to be careful which edition to choose. Otherwise, some features might not be available.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5605171879359166933?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5605171879359166933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/if-you-are-deploying-sharepoint-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5605171879359166933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5605171879359166933'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/if-you-are-deploying-sharepoint-this.html' title=''/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Gl7tY0Wwds0/TrlXocQDyFI/AAAAAAAABEg/xM-0nO5TzF0/s72-c/Screen+Shot+2011-11-09+at+12.21.24+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6718714380799286974</id><published>2011-11-06T10:01:00.003+08:00</published><updated>2011-11-06T10:02:00.283+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>OpenAM Policy Agent - Life Cycle</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;I always prefer diagram to wordings. Below is an illustration on how a Centralized&amp;nbsp;Agent Configuration works:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-vkcdHsQH8yE/TrXpKvnnq6I/AAAAAAAABEY/9SPTnWUsGaM/s1600/agent.07.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" ida="true" src="http://4.bp.blogspot.com/-vkcdHsQH8yE/TrXpKvnnq6I/AAAAAAAABEY/9SPTnWUsGaM/s400/agent.07.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;When an agent starts up, it reads its bootstrapping file to initialize itself.&lt;br /&gt;&lt;br /&gt;OpenSSOAgentBootstrap.properties is stored on the agent machine and indicates the location from where the configuration properties need to be retrieved. Based on the repository setting in OpenSSOAgentBootstrap.properties, it retrieves the rest of its configuration properties. It fetches its configuration from OpenAM Server.&lt;br /&gt;&lt;br /&gt;An agent fetches its configuration properties periodically to determine if there have been any configuration changes. Any agent configuration changes made centrally are conveyed to the affected agents, which will react accordingly based on the nature of the updated properties. If the properties affected are hot swappable, the agent can start using the new values without a restart of the underlying agent web container. Notification of the agent when configuration data changes and polling by the agent for configuration changes can be enabled. Agents can also receive notifications of session and policy changes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Note:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;For Apache Policy Agent, do not enable notification. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6718714380799286974?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6718714380799286974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/openam-policy-agent-life-cycle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6718714380799286974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6718714380799286974'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/openam-policy-agent-life-cycle.html' title='OpenAM Policy Agent - Life Cycle'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-vkcdHsQH8yE/TrXpKvnnq6I/AAAAAAAABEY/9SPTnWUsGaM/s72-c/agent.07.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-374708190276191818</id><published>2011-11-05T09:51:00.000+08:00</published><updated>2011-11-06T09:52:04.330+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Cluster initialization failed. Disabling the cluster service.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Switching from Solaris to Linux OS can be a challenge to me, at times.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I was installing and configuring Glassfish Message Queue for OpenAM Session Failover a month back and was not able to make it work initially.﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9wELmnk4ws8/TrXmQc901HI/AAAAAAAABEQ/Q0P59OWuVfg/s1600/loopback.ip.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="50" ida="true" src="http://3.bp.blogspot.com/-9wELmnk4ws8/TrXmQc901HI/AAAAAAAABEQ/Q0P59OWuVfg/s400/loopback.ip.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The configuration was made exactly the same as what I would have done on a Solaris box. I have done that far too many times to have miss out anything. But.... the MQ just would not start on a Linux box!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So debugging was needed... In the end, I found the issue - &lt;span style="color: red;"&gt;&lt;strong&gt;"Invalid broker address for this broker to run in cluster: Loopback IP address is not allowed in broker address mq://127.0.0.1:7676/..."&lt;/strong&gt;&lt;/span&gt;﻿&lt;/div&gt;&lt;br /&gt;I found out that in Linux OS, loopback IP is not allowed. &lt;br /&gt;&lt;br /&gt;The resolution is to add imq.hostname in the BROKER_OPTIONS:&lt;br /&gt;&lt;br /&gt;[lx123 ]$ cd /am/bin/sfo/bin&lt;br /&gt;[lx123 bin]$ vi amsfo&lt;br /&gt;BROKER_OPTIONS="-silent &lt;span style="color: red;"&gt;&lt;strong&gt;-Dimq.hostname=am1.lx.com&lt;/strong&gt;&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-374708190276191818?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/374708190276191818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/11/cluster-initialization-failed-disabling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/374708190276191818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/374708190276191818'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/11/cluster-initialization-failed-disabling.html' title='Cluster initialization failed. Disabling the cluster service.'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-9wELmnk4ws8/TrXmQc901HI/AAAAAAAABEQ/Q0P59OWuVfg/s72-c/loopback.ip.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-400670747986704480</id><published>2011-10-26T23:07:00.001+08:00</published><updated>2011-10-26T23:08:02.626+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>no sso token, setting status to invalid session</title><content type='html'>&lt;br /&gt;I rebuilt the development environment for my customer the other day. It was a fairly simple job since it's only a single box setup.&lt;br /&gt;&lt;br /&gt;In this development, we have specifically named the Cookie Name as "dsiPlanetDirectoryPro", instead of the default "iPlanetDirectoryPro".&lt;br /&gt;&lt;br /&gt;Nothing special. &lt;br /&gt;&lt;br /&gt;So I had the following set up for the agent. I renamed the default cookie name to "dsiPlanetDirectoryPro".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0IGIvA-_Uoc/TqgfcSqEWiI/AAAAAAAABDk/qfgfn9CbhkY/s1600/agent.00.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" ida="true" src="http://2.bp.blogspot.com/-0IGIvA-_Uoc/TqgfcSqEWiI/AAAAAAAABDk/qfgfn9CbhkY/s320/agent.00.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But I hit the following error when the agent container is started. The agent debug logs as follows:&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151MaxDebug 29740:16af2ab0 AM_POLICY_SERVICE: am_policy_compare_urls: Comparison of "https://dsxxx.xxx.com:443/RA/MainMenu.html" and "https://dsxxx.xxx.com:443/am/UI/Logout" returned AM_NO_MATCH (usePatterns=false)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151MaxDebug 29740:16af2ab0 all: is_url_not_enforced(): URL https://dsxxx.xxx.com:443/RA/MainMenu.html is enforced.&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151 Debug 29740:16af2ab0 all: am_web_get_parameter_value(): Param Name = &lt;span style="color: red;"&gt;dsiPlanetDirectoryPro&lt;/span&gt;, &amp;amp; Param Value = NULL, status not found&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151 Debug 29740:16af2ab0 all: am_web_is_access_allowed()(https://dsxxx.xxx.com:443/RA/MainMenu.html,GET):&lt;span style="color: red;"&gt; no sso token, setting status to invalid session&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151 Info 29740:16af2ab0 all: am_web_is_access_allowed()(https://dsxxx.xxx.com:443/RA/MainMenu.html, GET) &lt;span style="color: red;"&gt;returning status: invalid session&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151 Info 29740:16af2ab0 all: process_request(): Access check for URL https://dsxxx.xxx.com:443/RA/MainMenu.html returned invalid session.&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151 Debug 29740:16af2ab0 all: process_request(): &lt;strong&gt;&lt;span style="color: red;"&gt;AM_INVALID_SESSION&lt;/span&gt;&lt;/strong&gt;, will redirect (post data: (null))&lt;br /&gt;&lt;br /&gt;2011-10-21 20:01:02.151MaxDebug 29740:16af2ab0 all: am_web_get_url_to_redirect: goto URL is https://dsxxx.xxx.com:443/RA/MainMenu.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The behavior at the browser is the user is being redirected recursively until it gives up!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I spent&amp;nbsp;a considerable amount of effort debugging.&amp;nbsp;It's very strange because production site is working fine.&amp;nbsp;So, some settings must have been wrong in this new development server.&lt;br /&gt;&lt;br /&gt;In the end, I realized it was a careless mistake of mine - I have forgotten to rename the cookie name for the default server settings!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-d-gd7aGXwG4/Tqgh18TyF6I/AAAAAAAABDs/FWHu1Nft-SY/s1600/agent.01.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" ida="true" src="http://3.bp.blogspot.com/-d-gd7aGXwG4/Tqgh18TyF6I/AAAAAAAABDs/FWHu1Nft-SY/s320/agent.01.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-u--aNy10vjc/Tqgh2-XlJ6I/AAAAAAAABD0/omgp3aP4JOE/s1600/agent.02.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" ida="true" src="http://2.bp.blogspot.com/-u--aNy10vjc/Tqgh2-XlJ6I/AAAAAAAABD0/omgp3aP4JOE/s320/agent.02.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-OBgwK0r3I44/Tqgh3uTYMVI/AAAAAAAABD8/-4j5BoCgxqg/s1600/agent.03.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="102" ida="true" src="http://3.bp.blogspot.com/-OBgwK0r3I44/Tqgh3uTYMVI/AAAAAAAABD8/-4j5BoCgxqg/s320/agent.03.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The cookie name was still "iPlanetDirectoryPro", which is wrong for our development environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-400670747986704480?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/400670747986704480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/10/no-sso-token-setting-status-to-invalid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/400670747986704480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/400670747986704480'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/10/no-sso-token-setting-status-to-invalid.html' title='no sso token, setting status to invalid session'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0IGIvA-_Uoc/TqgfcSqEWiI/AAAAAAAABDk/qfgfn9CbhkY/s72-c/agent.00.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6811334412194278650</id><published>2011-09-17T12:19:00.000+08:00</published><updated>2011-09-17T12:19:13.128+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Install OpenAM Core Only</title><content type='html'>For production deployment, most customers prefer the OpenAM Administration Console not to be exposed to the Internet. Instead, they'll like the Admin Console to be&amp;nbsp;accessible within the Intranet.&lt;br /&gt;&lt;br /&gt;The&amp;nbsp;solution is to deploy a OpenAM Core Only distribution in the Internet; while deploying a OpenAM Console Only distribution in the Intranet.&lt;br /&gt;&lt;br /&gt;After deploying OpenAM Core Only, you'll still get the Login Page. There's no difference in behavior from the out-of-the-box installation.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-qzL4f4qaX2M/TnQdGFnkFOI/AAAAAAAABDQ/0heKN5tvo2E/s1600/openam.headless.0.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" rba="true" src="http://3.bp.blogspot.com/-qzL4f4qaX2M/TnQdGFnkFOI/AAAAAAAABDQ/0heKN5tvo2E/s320/openam.headless.0.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The only difference is when you attempt to login. Once you have successfully authenticated, you'll be shown the following page.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-1D7YTPcer70/TnQdHxckMVI/AAAAAAAABDU/dn4kUrDnWMI/s1600/openam.headless.1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="196" rba="true" src="http://1.bp.blogspot.com/-1D7YTPcer70/TnQdHxckMVI/AAAAAAAABDU/dn4kUrDnWMI/s320/openam.headless.1.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The JSPs for the console pages have been stripped off. As such, the requested resource is not available.&lt;br /&gt;&lt;br /&gt;This type of deployment is useful if the OpenAM Login Page is not utilized for end-users' authentication purpose.&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6811334412194278650?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6811334412194278650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/09/install-openam-core-only.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6811334412194278650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6811334412194278650'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/09/install-openam-core-only.html' title='Install OpenAM Core Only'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qzL4f4qaX2M/TnQdGFnkFOI/AAAAAAAABDQ/0heKN5tvo2E/s72-c/openam.headless.0.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7170190219152317104</id><published>2011-09-09T13:39:00.003+08:00</published><updated>2011-09-09T13:40:51.876+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><title type='text'>OpenAM : Why is Login Page missing after reboot?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;I came across this question before. Today, I encountered this scenario after my VM hung and I needed to reboot the server.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MbwVU1qJbK8/TmmjCw_FGeI/AAAAAAAABDE/MacxPAwjcPw/s1600/openam.config.PNG.config" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" nba="true" src="http://2.bp.blogspot.com/-MbwVU1qJbK8/TmmjCw_FGeI/AAAAAAAABDE/MacxPAwjcPw/s400/openam.config.PNG.config" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Very strange. Everything was running fine for so many days. I panicked when I have to re-configure again. &lt;br /&gt;&lt;br /&gt;Well, after I cooled down, I then realized my OpenDJ was not started yet!! I had my OpenAM installed with configuration and user data stores in the &lt;strong&gt;&lt;em&gt;external OpenDJ&lt;/em&gt;&lt;/strong&gt;. (I did not use the embedded OpenDJ that was bundled with OpenAM)&lt;br /&gt;&lt;br /&gt;Ok, so I shutdown OpenAM. Started OpenDJ, followed by OpenAM. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-d4v0lo2B3s4/Tmmk3zYXZ6I/AAAAAAAABDI/9LyIB4EXouA/s1600/openam.login.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" nba="true" src="http://4.bp.blogspot.com/-d4v0lo2B3s4/Tmmk3zYXZ6I/AAAAAAAABDI/9LyIB4EXouA/s1600/openam.login.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Everything is now back to normal. Phew!&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Anyway, I would expect OpenAM to be smarter. At least, it should check whether or not there is an existing instance installed by looking into the &lt;em&gt;&lt;strong&gt;.openssocfg&lt;/strong&gt;&lt;/em&gt; directory.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--BBuwzM7zn0/TmmmHNfgkuI/AAAAAAAABDM/gXLUba4C8GE/s1600/openam.config.chk" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" nba="true" src="http://4.bp.blogspot.com/--BBuwzM7zn0/TmmmHNfgkuI/AAAAAAAABDM/gXLUba4C8GE/s400/openam.config.chk" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;If existing instance(s) found, then it should not redirect users to the Configuration Page.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;.&lt;/div&gt;&lt;div align="left"&gt;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7170190219152317104?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7170190219152317104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/09/openam-why-is-login-page-missing-after.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7170190219152317104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7170190219152317104'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/09/openam-why-is-login-page-missing-after.html' title='OpenAM : Why is Login Page missing after reboot?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-MbwVU1qJbK8/TmmjCw_FGeI/AAAAAAAABDE/MacxPAwjcPw/s72-c/openam.config.PNG.config' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6908708173356144207</id><published>2011-09-09T12:29:00.002+08:00</published><updated>2011-09-09T12:29:26.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><title type='text'>LDAP Error 21: The request contains invalid syntax.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In my test environment, I have configured an external data store which is connected to OpenDJ 2.4.3. My OpenAM configuration store is connected to the same OpenDJ instance.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-NhByHoQ39b4/TmmTjbwk8BI/AAAAAAAABDA/3DCs7Ocjz-E/s1600/openam.new-user.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" nba="true" src="http://2.bp.blogspot.com/-NhByHoQ39b4/TmmTjbwk8BI/AAAAAAAABDA/3DCs7Ocjz-E/s320/openam.new-user.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I was trying to perform a simple load-test and needed some test users. As such, I tried to create new users via the OpenAM Administration Console. Since "First Name" is not compulsory, I skipped that field.&lt;br /&gt;&lt;br /&gt;No good. I encountered &lt;span style="color: red;"&gt;&lt;strong&gt;&lt;em&gt;"LDAP Error 21: The request contains invalid syntax.".&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Very strange. How can this be? When my external data store was Sun DSEE, I have never encountered the same issue before. &lt;br /&gt;&lt;br /&gt;A look at the OpenDJ access log revealed the following:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;[08/Sep/2011:14:54:43 +0800] ADD REQ conn=71 op=3 msgID=278 dn="uid=test001,ou=people,o=st701" [08/Sep/2011:14:54:43 +0800] ADD RES conn=71 op=3 msgID=278 result=21 message="Entry "uid=test001,ou=people,o=st701" contains a value "" for attribute givenName that is invalid according to the syntax for that attribute: &lt;span style="color: red;"&gt;The operation attempted to assign a zero-length value to an attribute with the directory string syntax&lt;/span&gt;" etime=4&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A check with OpenDJ indicated that "Directory String"&amp;nbsp;has a property&amp;nbsp;"&lt;strong&gt;allow-zero-length-values&lt;/strong&gt;" set to &lt;strong&gt;false&lt;/strong&gt; by default.&lt;br /&gt;&lt;br /&gt;How to resolve?&lt;br /&gt;&lt;br /&gt;$ bin/dsconfig -h am1.sg.azlabs -p 888 -D "cn=Directory Manager" -w [password] set-attribute-syntax-prop \&lt;br /&gt;-n --syntax-name "Directory String" --set allow-zero-length-values:true &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;PS: The 2 product teams (OpenAM vs OpenDJ) have to talk to each other.&amp;nbsp;Both products have to work seamlessly out-of-the-box.&amp;nbsp;One team has to give in to another at times. My thought.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6908708173356144207?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6908708173356144207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/09/ldap-error-21-request-contains-invalid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6908708173356144207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6908708173356144207'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/09/ldap-error-21-request-contains-invalid.html' title='LDAP Error 21: The request contains invalid syntax.'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-NhByHoQ39b4/TmmTjbwk8BI/AAAAAAAABDA/3DCs7Ocjz-E/s72-c/openam.new-user.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2183118957399327283</id><published>2011-09-07T23:41:00.001+08:00</published><updated>2011-09-07T23:41:43.549+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenAM : Extending to a Dual Instance Deployment</title><content type='html'>If you are using the web-based GUI to install your 2nd OpenAM instance, you'll come to Step 3 wizard page (&lt;strong&gt;&lt;em&gt;Configuration Data Store Settings&lt;/em&gt;&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;Since this is the 2nd instance, we should select &lt;em&gt;"Add to Existing Deployment?"&lt;/em&gt;. Then we should key in the "Server URL" - which points to the 1st OpenAM instance.&lt;br /&gt;&lt;br /&gt;Once the Server URL is entered, the LDAP Server will be auto-populated. &lt;em&gt;Strange thing is the Port is populated with "null".&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6ZlSNWJ3B6M/TmeOfMOEK3I/AAAAAAAABC4/YahKghUgiGo/s1600/openam.2nd-inst.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" nba="true" src="http://2.bp.blogspot.com/-6ZlSNWJ3B6M/TmeOfMOEK3I/AAAAAAAABC4/YahKghUgiGo/s400/openam.2nd-inst.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So is this going to work or not? I went ahead to continue with the installation.&lt;/div&gt;&lt;br /&gt;The installation completed without any error! After installation, I logged into OpenAM Admin Console to double check. Everything is good. The LDAP port for my 2nd instance is reflected as "1389" - which is correct.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-m007TPlfO-g/TmeOhMygQaI/AAAAAAAABC8/0mlvTxj1_98/s1600/openam.2nd-inst.1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" nba="true" src="http://1.bp.blogspot.com/-m007TPlfO-g/TmeOhMygQaI/AAAAAAAABC8/0mlvTxj1_98/s400/openam.2nd-inst.1.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left"&gt;﻿&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;It's still a mystery why "null" was displayed in the installation wizard.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2183118957399327283?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2183118957399327283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/09/openam-extending-to-dual-instance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2183118957399327283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2183118957399327283'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/09/openam-extending-to-dual-instance.html' title='OpenAM : Extending to a Dual Instance Deployment'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-6ZlSNWJ3B6M/TmeOfMOEK3I/AAAAAAAABC4/YahKghUgiGo/s72-c/openam.2nd-inst.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4434615287450583554</id><published>2011-09-06T15:38:00.002+08:00</published><updated>2011-09-07T23:42:01.912+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>AM SFO: Dual instances on single machine</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;We have just won a project to migrate from Sun Access Manager 7 to ForgeRock OpenAM 9.5.3.﻿ This site has high concurrent access and many Policy Agents. It also needs to support Session Failover.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s1600/openam.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" nba="true" src="http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s1600/openam.logo.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There are many ways to scale OpenAM and the corresponding AMSFO. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In my test labs, I was trying to get 2 instances of AMSFO to run concurrently. I followed this &lt;a href="https://wikis.forgerock.org/confluence/display/openam/5+Extending+to+a+Dual+Instance+Deployment"&gt;Wiki&lt;/a&gt; &lt;strong&gt;&lt;em&gt;(Extending to a Dual Instance Deployment) &lt;/em&gt;&lt;/strong&gt;from OpenAM. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Everything runs fine for the 1st instance (port 7777). I just could not get the 2nd instance (port 8777) to start up properly on the same physical machine.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It kept throwing the following error:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;&lt;span style="color: #cc0000;"&gt;Sep 6, 2011 3:06:08 PM com.sun.messaging.jmq.jmsclient.ExceptionHandler throwConnectionException&lt;br /&gt;WARNING: [C4003]: Error occurred on connection creation [am2.sg.azlabs:8777]. - cause: java.net.ConnectException: Connection refused&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-HlW79Inpgms/TmXImA6riNI/AAAAAAAABCk/iyUNurhd770/s1600/openam.sfo.error.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" nba="true" src="http://2.bp.blogspot.com/-HlW79Inpgms/TmXImA6riNI/AAAAAAAABCk/iyUNurhd770/s400/openam.sfo.error.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I think there must be a mis-configuration in the Java Message Queue. OpenAM 9.5.3 uses Sun GlassFish(tm) Message Queue 4.4.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So I searched Google and located this &lt;a href="http://download.oracle.com/docs/cd/E19587-01/821-0027/aeons/index.html"&gt;document&lt;/a&gt;. I think what&amp;nbsp;was missing is to instruct each MQ to bind to its own dedicated IP address ( &lt;var&gt;imq.hostname - Default host name or IP address for all connection services&lt;/var&gt;&amp;nbsp;).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I also learnt that there are many other listening ports&amp;nbsp;when&amp;nbsp;AMSFO is started, besides the broker port 7777.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;u&gt;Before AMSFO is started:&lt;/u&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-cSijOBpCobk/TmXLwEgYD_I/AAAAAAAABCw/mCCDWsKDuKA/s1600/openam.sfo.b4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="46" nba="true" src="http://1.bp.blogspot.com/-cSijOBpCobk/TmXLwEgYD_I/AAAAAAAABCw/mCCDWsKDuKA/s400/openam.sfo.b4.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;u&gt;After AMSFO is started:&lt;/u&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-mCq27K7PZyM/TmXLssQp8ZI/AAAAAAAABCs/iqwUOSbKMdo/s1600/openam.sfo.after.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" nba="true" src="http://3.bp.blogspot.com/-mCq27K7PZyM/TmXLssQp8ZI/AAAAAAAABCs/iqwUOSbKMdo/s400/openam.sfo.after.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, it's very obvious there was a clash in ports when the 2nd instance was trying to start. (e.g. 50722, 55044 etc.. It's random port numbers.. But so lucky of me to keep clashing on used ports)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;&lt;u&gt;Resolution?&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the start-up script &lt;strong&gt;&lt;em&gt;amsfo&lt;/em&gt;&lt;/strong&gt;, edit the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;#BROKER_OPTIONS="-silent"&lt;/div&gt;BROKER_OPTIONS="-silent -Dimq.hostname=am1.sg.azlabs"&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Apply the same to the start-up script in the 2nd instance, but change the imq.hostname to am2.sg.azlabs.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://4.bp.blogspot.com/-m5PTPmdGjJw/TmXLrF2VCrI/AAAAAAAABCo/sg-C4lxDUNo/s1600/openam.sfo.after.GD.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" nba="true" src="http://4.bp.blogspot.com/-m5PTPmdGjJw/TmXLrF2VCrI/AAAAAAAABCo/sg-C4lxDUNo/s400/openam.sfo.after.GD.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;Solved!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4434615287450583554?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4434615287450583554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/09/am-sfo-dual-instances-on-single-machine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4434615287450583554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4434615287450583554'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/09/am-sfo-dual-instances-on-single-machine.html' title='AM SFO: Dual instances on single machine'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s72-c/openam.logo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-9185881319518396408</id><published>2011-08-12T19:25:00.062+08:00</published><updated>2011-08-14T01:13:53.443+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO/OpenAM : Session Timeout for Login Page</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The following is the page most customers hate.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-AEm78G-6qXU/TkaqL9jp2GI/AAAAAAAABCI/ZulFIGRuHTk/s1600/Screen+Shot+2011-08-14+at+12.43.53+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-AEm78G-6qXU/TkaqL9jp2GI/AAAAAAAABCI/ZulFIGRuHTk/s1600/Screen+Shot+2011-08-14+at+12.43.53+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Unlike other web-based applications, the OpenSSO/OpenAM login page itself has a timeout value. The clock starts ticking when users land on this page. If users do not login before the timeout, the "Your session has timed out" will be displayed. The default value is 120 seconds.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #741b47;"&gt;&lt;b&gt;How can we increase this value?&lt;/b&gt;&lt;/span&gt;&lt;/i&gt; This is the most common question from customer.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;[openam953]$ cd&amp;nbsp;/home/openam953/opt3/tomcat/webapps/openam953/config/auth/default_en&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;[openam953]$ vi DataStore.xml&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KdBwvdSjSZo/Tkas7qX1-DI/AAAAAAAABCM/oE-HbtA2vTo/s1600/Screen+Shot+2011-08-14+at+12.55.09+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://3.bp.blogspot.com/-KdBwvdSjSZo/Tkas7qX1-DI/AAAAAAAABCM/oE-HbtA2vTo/s400/Screen+Shot+2011-08-14+at+12.55.09+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Change &lt;i&gt;&lt;b&gt;timeout&lt;/b&gt;&lt;/i&gt; from 120 to 300. I personally think 5 minutes is a reasonable value. Why would one come to a Central Single Sign-On page to do nothing? Most probably, one would want to authenticate and be quickly redirected to the intended application.&lt;br /&gt;&lt;br /&gt;I somehow had this impression that a timeout value of 0 implies there will be no session timeout. With this impression, I implemented this solution for one of my customer in one of the local ministries. The feedback was the Login Page times out even faster. Strange! :)&lt;br /&gt;&lt;br /&gt;After much debug, I then realized 0 is not an accepted value. If 0 is input, a default value of 60 seconds will be applied.&lt;br /&gt;&lt;br /&gt;[openam953]$ tail -f Authentication | grep -i "timeout"&lt;br /&gt;&lt;br /&gt;Setting page timeout :60&lt;br /&gt;Returning page timeout :60&lt;br /&gt;Setting page timeout :120 &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&amp;lt;- Default Login Page value&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Setting page timeout :60&lt;br /&gt;Returning page timeout :60&lt;br /&gt;Setting page timeout :600 &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&amp;lt;- This was when I set the timeout value to 600&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Setting page timeout :60&lt;br /&gt;Returning page timeout :60&lt;br /&gt;Setting page timeout :60 &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&amp;lt;- If 0 is input, it will be replaced by 60&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This default value can be found in PagePropertiesCallback.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-cqyWnq5AEh4/TkawYYvn_CI/AAAAAAAABCU/ugTKXIxlvac/s1600/Screen+Shot+2011-08-14+at+1.11.26+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="36" src="http://1.bp.blogspot.com/-cqyWnq5AEh4/TkawYYvn_CI/AAAAAAAABCU/ugTKXIxlvac/s400/Screen+Shot+2011-08-14+at+1.11.26+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-kbtf4_OumXQ/Tkawwby9ltI/AAAAAAAABCc/lfk53kdqjyA/s1600/Screen+Shot+2011-08-14+at+1.11.43+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-kbtf4_OumXQ/Tkawwby9ltI/AAAAAAAABCc/lfk53kdqjyA/s1600/Screen+Shot+2011-08-14+at+1.11.43+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And also, do take note of &lt;b&gt;&lt;i&gt;Invalidate Session Max Time&lt;/i&gt;&lt;/b&gt; in Session Limits.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-pb0t30wZku4/TkavvcHmHVI/AAAAAAAABCQ/cUgX_x9I2Sw/s1600/Screen+Shot+2011-08-12+at+1.55.24+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="81" src="http://1.bp.blogspot.com/-pb0t30wZku4/TkavvcHmHVI/AAAAAAAABCQ/cUgX_x9I2Sw/s400/Screen+Shot+2011-08-12+at+1.55.24+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The default value is 3 mins. In my case, I should set it to 6 mins instead.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-9185881319518396408?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/9185881319518396408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/08/openssoopenam-session-timeout-for-login.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9185881319518396408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9185881319518396408'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/08/openssoopenam-session-timeout-for-login.html' title='OpenSSO/OpenAM : Session Timeout for Login Page'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-AEm78G-6qXU/TkaqL9jp2GI/AAAAAAAABCI/ZulFIGRuHTk/s72-c/Screen+Shot+2011-08-14+at+12.43.53+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7444310419839111242</id><published>2011-08-02T19:19:00.000+08:00</published><updated>2011-08-02T19:19:57.962+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>Weird behavior in OpenAM 9.5.3 RC1 when configured with external configuration data store</title><content type='html'>OpenAM 9.5.3 stable release was released today. The download link is &lt;a href="http://www.forgerock.org/openam.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s1600/openam.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s1600/openam.logo.PNG" t$="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Prior to this stable release, I was using 9.5.3 RC1 for a demo and discovered a weird behavior. Luckily,&amp;nbsp; it's gone in 9.5.3 stable release.&lt;br /&gt;&lt;br /&gt;The issue only happened when an external configuration data store is used. In my case, I was using OpenDJ 2.4.2.&lt;br /&gt;&lt;br /&gt;As with any default OpenAM installation, the log level was set to ERROR. I wanted to debug my deployment, thus I went ahead to set the log level from ERROR to MESSAGE via the OpenAM Administration Console.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-2gNHG8O6yiQ/TjfaJ4UA-0I/AAAAAAAABBs/7TEJ1JT6hdQ/s1600/Capture1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/-2gNHG8O6yiQ/TjfaJ4UA-0I/AAAAAAAABBs/7TEJ1JT6hdQ/s320/Capture1.PNG" t$="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Set Debug Level to &lt;strong&gt;&lt;em&gt;"Message".&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/--g09fR3LJLI/TjfaLOnvwaI/AAAAAAAABBw/kNrBZU9mJOo/s1600/Capture2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="137" src="http://2.bp.blogspot.com/--g09fR3LJLI/TjfaLOnvwaI/AAAAAAAABBw/kNrBZU9mJOo/s320/Capture2.PNG" t$="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Everything ran fine. The verbose logging was output. However, once I restarted the web container, I'll not be able to get to the Login page anymore. &lt;br /&gt;&lt;br /&gt;The Session log threw the following error:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;**********************************************&lt;/em&gt;&lt;br /&gt;&lt;em&gt;amSSOProvider:08/02/2011 04:48:45:718 PM SGT: Thread[main,5,main]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;SSO token ldap auth successful for AuthPrincipal: cn=dsameuser,ou=DSAME Users,dc=opensso,dc=java,dc=net&lt;/em&gt;&lt;br /&gt;&lt;em&gt;amSession:08/02/2011 04:48:45:777 PM SGT: Thread[main,5,main]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;ERROR: SessionService.SessionService(): Initialization Failed&lt;/em&gt;&lt;br /&gt;&lt;em&gt;com.iplanet.services.naming.ServerEntryNotFoundException&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:730)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:618)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.iplanet.dpro.session.service.SessionService.&lt;init&gt;(SessionService.java:1772)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.iplanet.dpro.session.service.SessionService.getSessionService(SessionService.java:448)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.service.AuthD.getSS(AuthD.java:905)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.service.AuthD.initAuthSessions(AuthD.java:938)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.service.AuthD.&lt;init&gt;(AuthD.java:273)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.service.AuthD.getAuth(AuthD.java:560)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.UI.LoginLogoutMapping.initializeAuth(LoginLogoutMapping.java:100)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;at com.sun.identity.authentication.UI.LoginLogoutMapping.init(LoginLogoutMapping.java:75)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The fastest workaround was to change the LDAP value in the external configuration data store from MESSAGE back to ERROR.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3cBCTkUKJIo/TjfaNSSPVRI/AAAAAAAABB0/PyZSBXg37jM/s1600/Capture4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="http://4.bp.blogspot.com/-3cBCTkUKJIo/TjfaNSSPVRI/AAAAAAAABB0/PyZSBXg37jM/s320/Capture4.PNG" t$="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Change to &lt;em&gt;"ERROR"&lt;/em&gt;. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QnIRe4gYVjg/TjfaPHdz3XI/AAAAAAAABB4/QTmg8VL4AlQ/s1600/Capture3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="81" src="http://4.bp.blogspot.com/-QnIRe4gYVjg/TjfaPHdz3XI/AAAAAAAABB4/QTmg8VL4AlQ/s320/Capture3.PNG" t$="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Restarted web container. Solved. Everything back to normal. Very weird.&amp;nbsp; ( I tried Tomcat 6 and Glassfish 2.1, both threw the same error if external configuration data store is used )&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Today, I tried OpenAM 9.5.3 with embedded and external config data store. Both work!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Out of curiousity, I tried OpenAM 9.5.3 RC1 with embedded config data store. It works! So it's only with external&amp;nbsp;config data store, then it fails. Hmmmm....&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7444310419839111242?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7444310419839111242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/08/weird-behavior-in-openam-953-rc1-when.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7444310419839111242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7444310419839111242'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/08/weird-behavior-in-openam-953-rc1-when.html' title='Weird behavior in OpenAM 9.5.3 RC1 when configured with external configuration data store'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0m35gy9gXwU/TjfZoqceowI/AAAAAAAABBo/ID6kMj_7wYA/s72-c/openam.logo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-9024164403382418036</id><published>2011-07-27T14:28:00.000+08:00</published><updated>2011-07-27T14:28:56.978+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Permission to perform the edit operation denied</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In one of the OpenSSO projects I'm currently in, we have customized attributes defined in Sun DSEE 7. These attributes extend from &lt;i&gt;inetorgperson&lt;/i&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the Post Authentication Processing module, we would want to update one of the attributes if a certain condition is met.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So I have the following code segment:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;AMIdentity amIdentity = new AMIdentity(ssoToken);&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Map attrs  = new HashMap();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Set values = new HashSet(1);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;values.add (valueToSet);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;attrs.put  (SUNLDAPUser.ATTRIBUTE_MUSTCHGPWD, values);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;amIdentity.setAttributes(attrs);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;amIdentity.store();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looks good! But when we run it, we encountered the following error:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;"Permission to perform the edit operation denied ..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wq1fQDjJaZU/Ti-nyRes1tI/AAAAAAAABBg/73XdhbxVxmA/s1600/Screen+shot+2011-07-27+at+PM+12.33.05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="22" src="http://2.bp.blogspot.com/-wq1fQDjJaZU/Ti-nyRes1tI/AAAAAAAABBg/73XdhbxVxmA/s400/Screen+shot+2011-07-27+at+PM+12.33.05.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Strange! Why?&lt;br /&gt;&lt;br /&gt;After much investigation, I then realized we need to loosen the policy in the embedded OpenDS store.&lt;br /&gt;&lt;br /&gt;There is a &lt;b&gt;&lt;i&gt;xmlpolicy&lt;/i&gt;&lt;/b&gt; attribute in ou=SelfWriteAttributes,ou=Policies,ou=default,ou=OrganizationConfig,ou=1.0,ou=iPlanetAMPolicyService,ou=services,o=sunamhiddenrealmdelegationservicepermissions,ou=services,....&lt;domain&gt;&lt;/domain&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-yRs43X8qzGA/Ti-vzGpqgcI/AAAAAAAABBk/z3W14mTcY10/s1600/Screen+shot+2011-07-27+at+AM+11.00.20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="65" src="http://1.bp.blogspot.com/-yRs43X8qzGA/Ti-vzGpqgcI/AAAAAAAABBk/z3W14mTcY10/s400/Screen+shot+2011-07-27+at+AM+11.00.20.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, the trick is to add the attribute that we want to modify into the &lt;b&gt;&lt;i&gt;UserSelfCheckCondition&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Restart OpenSSO. Test. Done.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-9024164403382418036?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/9024164403382418036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/07/permission-to-perform-edit-operation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9024164403382418036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9024164403382418036'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/07/permission-to-perform-edit-operation.html' title='Permission to perform the edit operation denied'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wq1fQDjJaZU/Ti-nyRes1tI/AAAAAAAABBg/73XdhbxVxmA/s72-c/Screen+shot+2011-07-27+at+PM+12.33.05.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2740475645259915268</id><published>2011-07-04T18:04:00.001+08:00</published><updated>2011-07-27T12:31:12.113+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Incompatible Sun Message Queue Version</title><content type='html'>I have been trying to scale a old Sun Access Manager deployment from 2 nodes to 4 nodes. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/en/5/53/Sun_Java_System_Access_Manager_Software_Box.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" i$="true" src="http://upload.wikimedia.org/wikipedia/en/5/53/Sun_Java_System_Access_Manager_Software_Box.jpg" width="169" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In trying to yield better performance, I made some minor upgrade to each dependent components. I knew that Sun Message Queue 4.x has better performance than the old 3.6 version.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So, I made a weird decision to deploy a hybrid of Sun Message Queues - 3.6 mixed with 4.4.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;No good. You'll see this error in the MQ log during startup of AM SFO:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;﻿&lt;/em&gt;&lt;/div&gt;&lt;em&gt;[29/Jun/2011:14:21:36 SGT] ERROR [B3098]: Configuration mismatch: Aborting connection with broker [ mq://10.10.10.15:7878/?instName=imqbroker&amp;amp;brokerSessionUID=null ] because following configuration properties do not match -&lt;br /&gt;imq.queue.deliverypolicy=round-robin,single&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;em&gt;[29/Jun/2011:14:21:36 SGT] ERROR [B3098]: Configuration mismatch: Aborting connection with broker [ mq://10.10.10.16:7878/?instName=imqbroker&amp;amp;brokerSessionUID=null ] because following configuration properties do not match -&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;em&gt;imq.queue.deliverypolicy=round-robin,single&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;Update on 27th Jul 2011:&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;I realized hybrid deployment of Sun MQ works! In fact, the new deployment of different version of MQ has been running LIVE for a few weeks without any problem. (will continue to monitor though ...)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2740475645259915268?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2740475645259915268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/07/incompatible-sun-message-queue-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2740475645259915268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2740475645259915268'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/07/incompatible-sun-message-queue-version.html' title='Incompatible Sun Message Queue Version'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1453092382163883518</id><published>2011-06-28T23:54:00.001+08:00</published><updated>2011-06-28T23:55:09.392+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'></title><content type='html'>I talked about the wonderful ESSO solution from PasswordBank some time back. Read &lt;a href="http://azlabs.blogspot.com/2011/01/esso-product-from-passwordbank.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;This product differentiates itself by being able to support Desktop Platforms like Windows, Linux and Mac OS. This is something great! ESSO product has always been very Windows driven.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-i0fNls2gbyo/Tgn4i-06LMI/AAAAAAAABBE/Odyql1dBO2A/s1600/passwordbank.oracle.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" i$="true" src="http://3.bp.blogspot.com/-i0fNls2gbyo/Tgn4i-06LMI/AAAAAAAABBE/Odyql1dBO2A/s400/passwordbank.oracle.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It has caught the attention of Oracle. PasswordBank is now Oracle's partner of choice for heterogeneous environment deployment.&lt;br /&gt;&lt;br /&gt;This is something Passlogix v-GO SSO was not able to provide. By the way, Passlogix was aquired by Oracle just some months back. Read &lt;a href="http://www.oracle.com/us/corporate/press/176326"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Will PasswordBank be Oracle's next target? :) &lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1453092382163883518?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1453092382163883518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/06/i-talked-about-wonderful-esso-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1453092382163883518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1453092382163883518'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/06/i-talked-about-wonderful-esso-solution.html' title=''/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-i0fNls2gbyo/Tgn4i-06LMI/AAAAAAAABBE/Odyql1dBO2A/s72-c/passwordbank.oracle.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6721783242669351906</id><published>2011-06-28T23:46:00.000+08:00</published><updated>2011-06-28T23:46:59.826+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>SaaS SSO Vendors</title><content type='html'>The following is a list of SSO vendors that provides SaaS:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.okta.com/products/"&gt;Okta&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.passwordbank.com/passwordbank-websso/"&gt;PasswordBank&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gosecureauth.com/product/sso/cloud.aspx"&gt;PingIdentity&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.gosecureauth.com/product/sso/cloud.aspx"&gt;Secure Auth&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.symplified.com/main/what-we-do-for-you/products/"&gt;Simplified&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ubisecure.com/"&gt;UbiSecure&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ux3G8sX77a8/Tgn1vZKKneI/AAAAAAAABAk/LoBqJiqa7JI/s1600/okta.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" i$="true" src="http://4.bp.blogspot.com/-ux3G8sX77a8/Tgn1vZKKneI/AAAAAAAABAk/LoBqJiqa7JI/s200/okta.PNG" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-sw1lqqpWPz4/Tgn1xLxPO8I/AAAAAAAABAo/avGebitZM98/s1600/passwordbank.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="41" i$="true" src="http://2.bp.blogspot.com/-sw1lqqpWPz4/Tgn1xLxPO8I/AAAAAAAABAo/avGebitZM98/s200/passwordbank.PNG" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-YUnCvW2lpL0/Tgn1yBZRsLI/AAAAAAAABAs/Uts4nHhnZ8w/s1600/ping_identity.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" i$="true" src="http://2.bp.blogspot.com/-YUnCvW2lpL0/Tgn1yBZRsLI/AAAAAAAABAs/Uts4nHhnZ8w/s1600/ping_identity.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-yFe4O13vYys/Tgn1zeP4mVI/AAAAAAAABAw/VdiXfMLdaKQ/s1600/secureauth.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" i$="true" src="http://2.bp.blogspot.com/-yFe4O13vYys/Tgn1zeP4mVI/AAAAAAAABAw/VdiXfMLdaKQ/s1600/secureauth.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-sKTTA3wKGC0/Tgn10iV3JoI/AAAAAAAABA0/BggDWUHfXJI/s1600/symplified.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" i$="true" src="http://3.bp.blogspot.com/-sKTTA3wKGC0/Tgn10iV3JoI/AAAAAAAABA0/BggDWUHfXJI/s1600/symplified.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;How about &lt;strong&gt;&lt;em&gt;&lt;a href="http://forgerock.com/openam.html"&gt;OpenAM&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;? &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oFyNerkFEiU/Tgn3O2s2oYI/AAAAAAAABBA/HstCyV2-S2o/s1600/openam.logo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" i$="true" src="http://1.bp.blogspot.com/-oFyNerkFEiU/Tgn3O2s2oYI/AAAAAAAABBA/HstCyV2-S2o/s1600/openam.logo.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Not so soon ... Still on the roadmap... we need to wait a little longer...&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Cv-twLG0BSM/Tgn27gqBMAI/AAAAAAAABA8/tKeTNUmPNh4/s1600/openam.cloud.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" i$="true" src="http://2.bp.blogspot.com/-Cv-twLG0BSM/Tgn27gqBMAI/AAAAAAAABA8/tKeTNUmPNh4/s1600/openam.cloud.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6721783242669351906?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6721783242669351906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/06/saas-sso-vendors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6721783242669351906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6721783242669351906'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/06/saas-sso-vendors.html' title='SaaS SSO Vendors'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ux3G8sX77a8/Tgn1vZKKneI/AAAAAAAABAk/LoBqJiqa7JI/s72-c/okta.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6573567734650838049</id><published>2011-06-21T10:04:00.001+08:00</published><updated>2011-06-21T10:09:27.572+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><title type='text'>Replication over WAN</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://forgerock.com/opendj.html"&gt;&lt;img border="0" i$="true" src="http://4.bp.blogspot.com/-lClixF0DdEQ/Tf_7BpRz_sI/AAAAAAAABAg/YoLsknBGv_o/s1600/opendj.logo.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have a customer that has a server farm of Directory Servers. These directories are deployed in multiple sites, thus WAN replication is required to keep data in-sync.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In one of the directory instances, binary data are stored. Thus resulting in huge entries (some are as huge as 20MB per attribute value). &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;They were using Sun Directory Server 5.x happily before they were switched to Sun DSEE 6.x due to EOL of DS 5.2. Replication starts to break for those instances with huge entries. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In this particular case, customer was trying to replicate from a Wins2k3 box to a Solaris Sparc box.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;We raised a Support Case with Oracle Support and were told the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;I would consider your customer setup as a corner case which is a mixture of all the following:&lt;/em&gt;&lt;/div&gt;&lt;em&gt;* replication over SSL&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* replication over a slow WAN link&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* replication of huge entries&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* replication topology mixing different versions&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* replication not using compression&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* replication timeouts not correctly set&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;em&gt;AFAIK, the best performance of the Directory Server is obtained with the following combination:&lt;/em&gt;&lt;/div&gt;&lt;em&gt;* DS 7.0.1&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* Solaris x86&lt;/em&gt;&lt;br /&gt;&lt;em&gt;* ZFS&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Oracle kept suggesting getting Professional Services people to "take a look and make suggestion".&lt;br /&gt;&lt;br /&gt;But to the customer, the equation is so&amp;nbsp;simple:&lt;br /&gt;* There were no&amp;nbsp;change in&amp;nbsp;topology, OS, and data&lt;br /&gt;* DS 5.x works&lt;br /&gt;* Why would DSEE 6.x breaks? Shouldn't 6.x be a enhanced version of 5.x?&lt;br /&gt;&lt;br /&gt;It's definitely a limitation in DSEE 6.x which Oracle refuses to admit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By the way, we always do our own homework and below&amp;nbsp;are some findings:&lt;br /&gt;&lt;br /&gt;1. 5.2 SP6 (wins 2k) -&amp;gt; 5.2 SP6 (solaris sparc) ==&amp;gt; OK&lt;br /&gt;2. 5.2 SP6 (wins 2k) -&amp;gt; 6.3.1 (solaris sparc) ==&amp;gt; NOT OK&lt;br /&gt;3. 6.3.1 (windows) -&amp;gt; 6.3.1 (solaris sparc) ==&amp;gt; NOT OK&lt;br /&gt;4. 6.3.1 (solaris) -&amp;gt; 6.3.1 (solaris sparc) ==&amp;gt; NOT OK&lt;br /&gt;5. 7.0.1 (solaris) -&amp;gt; 6.3.1 (solaris sparc) ==&amp;gt; NOT OK&lt;br /&gt;6. 7.0.1 (solaris) -&amp;gt; 7.0.1 (solaris sparc) ==&amp;gt; NOT OK&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the end, I called upon my friend&amp;nbsp;(&lt;a href="http://forgerock.com/opendj.html"&gt;OpenDJ&lt;/a&gt;) for help. Looks good! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-7jshX-gVqzA/Tf_2YcFbioI/AAAAAAAABAc/NNKWFLT8zNY/s1600/opendj.replication.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" i$="true" src="http://3.bp.blogspot.com/-7jshX-gVqzA/Tf_2YcFbioI/AAAAAAAABAc/NNKWFLT8zNY/s400/opendj.replication.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To the customer, slow is not important as long as the data is kept in-sync. Simple requirement.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The next step is to deploy a test-bed in the customer's environment to confirm replication over WAN works using OpenDJ. The past few months have been very miserable, especially talking to those people.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6573567734650838049?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6573567734650838049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/06/replication-over-wan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6573567734650838049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6573567734650838049'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/06/replication-over-wan.html' title='Replication over WAN'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-lClixF0DdEQ/Tf_7BpRz_sI/AAAAAAAABAg/YoLsknBGv_o/s72-c/opendj.logo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3837076283213755674</id><published>2011-05-30T14:07:00.002+08:00</published><updated>2011-05-30T14:09:34.716+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenDS'/><title type='text'>OpenDJ: Replication Setup Error Message</title><content type='html'>Today, I hit into some issues with OpenOSSO multi-servers setup. I am suspecting there's something&amp;nbsp;not correct with the OpenDS configuration in a multi-servers deployment. Nothing concrete yet, am still investingating.&lt;br /&gt;&lt;br /&gt;In order to provide some facts, I think setting&amp;nbsp;2 instances of OpenDJ&amp;nbsp;in MMR mode would be good. At least, I have something to compare with.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s1600/OpenDJ.2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" r6="true" src="http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s1600/OpenDJ.2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So, the installation of OpenDJ was a breeze. (Do I re-broadcast so many times on this fact? :&amp;gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Setting up replication is not hard if you have the following command line as a template. (No GUI yet to set up replication.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;[opendj@think bin]$ ./dsreplication enable --host1 think.sg.forgerock --port1 8888 --bindDN1 "cn=directory manager" --bindPassword1 password --replicationPort1 8989 --host2 think.sg.forgerock --port2 7888 --bindDN2 "cn=directory manager" --bindPassword2 password --replicationPort2 8989 --adminUID admin --adminPassword password --baseDN "dc=sg,dc=forgerock" -X -n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Establishing connections ..... Done.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;You have provided the same replication port (8989) for two servers located on the same machine (think.sg.forgerock).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, am I done or not done? Initially, I thought I'm done. But ... actually, it's not done.&lt;br /&gt;&lt;br /&gt;Wouldn't the following be better? &lt;br /&gt;&lt;br /&gt;&lt;span style="color: red; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;ERROR: You have provided the same replication port (8989) for two servers located on the same machine (think.sg.forgerock).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-family: Courier New; font-size: xx-small;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3837076283213755674?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3837076283213755674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/05/opendj-replication-setup-error-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3837076283213755674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3837076283213755674'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/05/opendj-replication-setup-error-message.html' title='OpenDJ: Replication Setup Error Message'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s72-c/OpenDJ.2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-201843311884590465</id><published>2011-05-24T23:17:00.001+08:00</published><updated>2011-05-24T23:19:29.178+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>java.lang.OutOfMemoryError: unable to create new native thread</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have been driven crazy for the past 2 weeks performing load tests for the Single Sign-On infrastructure in a local ministry.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Today, one of the customized application threw the following error:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;i&gt;java.lang.OutOfMemoryError: unable to create new native thread&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;While searching for a solution, I came across the following diagram. I think it's good to share as it's very clear in illustrating how to tune a 32-bit JVM.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Q7UwFKIUlUY/TdvKC--LarI/AAAAAAAABAY/J3JbSBGQ-rc/s1600/4gb-layout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://3.bp.blogspot.com/-Q7UwFKIUlUY/TdvKC--LarI/AAAAAAAABAY/J3JbSBGQ-rc/s320/4gb-layout.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I had set the request processing thread (thread-count) to a high number of 500. (Ya! I was crazy to do that) At the same time, I set the Xmx and Xms to 2GB.&lt;br /&gt;&lt;br /&gt;So the math was rather bad (if you can follow the diagram above). Ha!&lt;br /&gt;&lt;br /&gt;In the end, we settled for Xmx and Xms to 512MB with thread-count being 200. The application flies!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-201843311884590465?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/201843311884590465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/05/javalangoutofmemoryerror-unable-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/201843311884590465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/201843311884590465'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/05/javalangoutofmemoryerror-unable-to.html' title='java.lang.OutOfMemoryError: unable to create new native thread'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Q7UwFKIUlUY/TdvKC--LarI/AAAAAAAABAY/J3JbSBGQ-rc/s72-c/4gb-layout.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-850655168493425916</id><published>2011-05-16T10:50:00.000+08:00</published><updated>2011-05-16T10:50:19.308+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Messaging Server'/><title type='text'>Goodbye, Sun Messaging Server!</title><content type='html'>&amp;nbsp;Last Saturday, we finally decommissioned the Sun Messaging Server in our data center. &lt;br /&gt;&lt;br /&gt;As everyone knows, Sun's software used to be free to use, even in production. Customers only need to pay if they require support. Well, that was yesterday and history. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZjCx2gEYRTo/TdCQJIFps2I/AAAAAAAABAU/x5tGa-MoBNw/s1600/Message_Service_Grid.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" j8="true" src="http://1.bp.blogspot.com/-ZjCx2gEYRTo/TdCQJIFps2I/AAAAAAAABAU/x5tGa-MoBNw/s1600/Message_Service_Grid.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Salute to Sun Messaging Server!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-850655168493425916?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/850655168493425916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/05/goodbye-sun-messaging-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/850655168493425916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/850655168493425916'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/05/goodbye-sun-messaging-server.html' title='Goodbye, Sun Messaging Server!'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ZjCx2gEYRTo/TdCQJIFps2I/AAAAAAAABAU/x5tGa-MoBNw/s72-c/Message_Service_Grid.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1055842908409160226</id><published>2011-05-06T17:25:00.000+08:00</published><updated>2011-05-06T17:25:31.258+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>SSL handshake</title><content type='html'>There has been a lot of discussions on how to configure SSL-enabled OpenAM servers to communicate with one another via self-signed certificates. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s1600/Screen+shot+2011-02-10+at+PM+02.51.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s320/Screen+shot+2011-02-10+at+PM+02.51.18.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Actually, honestly speaking, it's not an OpenAM issue. It's a JDK key-store issue. One needs to understand how SSL works. As mentioned in my blog some times back, I found this &lt;a href="http://blogs.sun.com/andreas/entry/no_more_unable_to_find"&gt;link&lt;/a&gt; a good start.&lt;br /&gt;&lt;br /&gt;These days, I am using &lt;a href="http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services"&gt;SSLPoke&lt;/a&gt; pretty often. This is the most wonderful tool to have. I'll make sure SSLPoke pass before I continue to configure the 2nd and subsequent OpenAM server.&lt;br /&gt;&lt;br /&gt;Or&amp;nbsp;you can set the following JVM-option:&lt;br /&gt;"-Djavax.net.debug=SSL,handshake,trustmanager"&lt;br /&gt;&lt;br /&gt;This will show why SSL handshake fails.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1055842908409160226?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1055842908409160226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/05/ssl-handshake.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1055842908409160226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1055842908409160226'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/05/ssl-handshake.html' title='SSL handshake'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s72-c/Screen+shot+2011-02-10+at+PM+02.51.18.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-694946278587101229</id><published>2011-04-15T17:20:00.002+08:00</published><updated>2011-04-15T17:26:24.135+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Sun Java System Web Server 7 Policy Agent Issue</title><content type='html'>I spent almost 1.5 weeks trying to resolve a Policy Agent issue in one of my customers' environment.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Aqpube6Dc3M/TagOuZTfYJI/AAAAAAAABAM/uc0ZWDY5XAE/s1600/Screen+shot+2011-04-15+at+PM+05.23.15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Aqpube6Dc3M/TagOuZTfYJI/AAAAAAAABAM/uc0ZWDY5XAE/s1600/Screen+shot+2011-04-15+at+PM+05.23.15.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Even though they have Sun Java System Web Server 7, their configuration is "ancient" type. We know that there is a modern in-built Reverse Proxy plugin in Web Server 7. But the customer is still using the legacy Glassfish Load-Balancer plugin.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Cross-Domain Single Sign-On&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There is this scenario where the Web Server is residing in a different domain from OpenSSO Server.&lt;br /&gt;&lt;br /&gt;In CDSSO mode, the agent for SJSWS does not reset the protocol version to the one from POST-request [HTTP/1.1]&amp;nbsp;(received from the CDCServlet), but to a HTTP-Request version 0.9 [HTTP]. This scenario only happens in CDSSO&amp;nbsp;mode due to the handling of the assertion the agent got from the CDCServlet.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step-by-Step&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;1. Policy Agent intercept "GET /hello/ HTTP/1.1"&lt;br /&gt;2. Since this is CDSSO, Policy Agent attempts to reset protocol version ( from HTTP/1.1 to HTTP )&lt;br /&gt;3. Policy Agent then allow the request to pass to the plugin&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Note: A HTTP without any version should be interpreted as HTTP 0.9, according to W3C.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;This is what W3C has to say with regard to&amp;nbsp;&lt;a href="http://www.w3.org/Protocols/HTTP/Request.html"&gt;HTTP Protocol Version&lt;/a&gt;:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;The Protocol/Version field defines the format of the rest of the request.. At the moment only HTRQ is defined.&amp;nbsp;If the protocol version is not specified, the server assumes that the browser uses HTTP version 0.9.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;So, what's the issue then?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Uwe5Ik9x6JU/TagGhe4fPCI/AAAAAAAABAI/GrQFtCkvwWo/s1600/Screen+shot+2011-04-15+at+PM+04.24.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://4.bp.blogspot.com/-Uwe5Ik9x6JU/TagGhe4fPCI/AAAAAAAABAI/GrQFtCkvwWo/s400/Screen+shot+2011-04-15+at+PM+04.24.03.png" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;b&gt;&lt;u&gt;Load Balancer Plugin (Web Server Access Log)&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;192.168.1.47 - - [13/Apr/2011:17:30:55 +0800] "GET /hello/ HTTP/1.1" 302 0&lt;br /&gt;192.168.1.47 - admin [13/Apr/2011:17:31:02 +0800] "GET /hello/ &lt;/span&gt;&lt;b&gt;&lt;span style="color: red; font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;HTTP" 505&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qYKFgOIFKco/TagGgT5BgEI/AAAAAAAABAE/6PHFP55k4U4/s1600/Screen+shot+2011-04-15+at+PM+04.24.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://1.bp.blogspot.com/-qYKFgOIFKco/TagGgT5BgEI/AAAAAAAABAE/6PHFP55k4U4/s400/Screen+shot+2011-04-15+at+PM+04.24.44.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;b&gt;&lt;u&gt;Reverse Proxy Plugin&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&amp;nbsp;(Web Server Access Log)&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;192.168.1.47 - - [14/Apr/2011:10:28:48 +0800] "GET /hello/ HTTP/1.1" 302 0&lt;br /&gt;192.168.1.47 - admin [14/Apr/2011:10:28:55 +0800] "GET /hello/ &lt;/span&gt;&lt;b&gt;&lt;span style="color: #000099; font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;HTTP" 200&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt; 327&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: Helvetica, sans-serif; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The issue is:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;a. LB-plugin: Not able to respect HTTP version 1.0 and below &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;("HTTP Error 505 HTTP version not supported' error)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;b. RP-plugin: Able to respect HTTP version 1.0 and below&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Clearly, there is something wrong with the Load-Balancer plugin. According to W3C, it has to honor HTTP and let the request to pass-through.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And, although it is fairly rare that any software/application will send a HTTP with protocol version lower than 1.0 these days, it is totally "legal" to do so.&lt;br /&gt;&lt;br /&gt;In this case, the Policy Agent chooses to swallow a request with HTTP/1.1, but passes a request HTTP to the plugin. Rightfully, it would be ideal to swallow HTTP/1.1, and passes the same HTTP/1.1 to the plugin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;PS: Btw, I need to thank Bernhard for helping me with this issue. Thanks, Bernhard!&lt;/i&gt;&lt;br /&gt;&lt;i&gt;.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-694946278587101229?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/694946278587101229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/sun-java-system-web-server-7-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/694946278587101229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/694946278587101229'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/sun-java-system-web-server-7-policy.html' title='Sun Java System Web Server 7 Policy Agent Issue'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Aqpube6Dc3M/TagOuZTfYJI/AAAAAAAABAM/uc0ZWDY5XAE/s72-c/Screen+shot+2011-04-15+at+PM+05.23.15.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8637636581281954214</id><published>2011-04-15T00:03:00.001+08:00</published><updated>2011-04-15T09:00:36.634+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenDJ'/><title type='text'>OpenDJ Directory Server</title><content type='html'>ForgeRock has done a great job with &lt;a href="http://forgerock.com/opendj.html"&gt;&lt;strong&gt;&lt;em&gt;OpenDJ Directory Server&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; so far. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s1600/OpenDJ.2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" r6="true" src="http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s1600/OpenDJ.2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;So what does OpenDJ provides, in a nutshell? A diagram will be best for illustration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jJqcm7B8vpM/TacZMO5ljsI/AAAAAAAAA_8/xqX1m2eOUos/s1600/OpenDJ.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="217" r6="true" src="http://3.bp.blogspot.com/-jJqcm7B8vpM/TacZMO5ljsI/AAAAAAAAA_8/xqX1m2eOUos/s400/OpenDJ.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For anyone interested in the details of OpenDJ, &lt;a href="http://azlabs.sg/forgerock/Upgrade-2-OpenDJ.pdf"&gt;here&lt;/a&gt; is the latest product sheet for your reference.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8637636581281954214?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8637636581281954214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/opendj-directory-server.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8637636581281954214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8637636581281954214'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/opendj-directory-server.html' title='OpenDJ Directory Server'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0Ga648vFgPA/Tacau8vQuHI/AAAAAAAABAA/bJMii_kaGA4/s72-c/OpenDJ.2.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1300663825454900220</id><published>2011-04-14T15:13:00.001+08:00</published><updated>2011-04-14T15:15:23.023+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Web Agent Caching Behavior</title><content type='html'>I have been asked a few times by customers on how Policy Agent manages its internal cache. I think I might as well make a note of this so that I can make reference to this question again much easier next time.&lt;br /&gt;&lt;br /&gt;There is actually a documentation on this topic &lt;a href="http://download.oracle.com/docs/cd/E19681-01/820-5816/aeabb/index.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Policy agent caches users' policies&lt;/li&gt;&lt;li&gt;2 mechanism are utilized: notification and/or polling&lt;/li&gt;&lt;li&gt;Each cache entry expires in 3 minutes, by default&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rann05aJ7_g/TaabWsWQ6ZI/AAAAAAAAA_4/qR9t6GXMV2M/s1600/Screen+shot+2011-04-14+at+PM+02.40.06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://1.bp.blogspot.com/-rann05aJ7_g/TaabWsWQ6ZI/AAAAAAAAA_4/qR9t6GXMV2M/s400/Screen+shot+2011-04-14+at+PM+02.40.06.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Firewall Consideration&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The challenge comes when there is a firewall between the Policy Agent and OpenSSO Enterprise Server. In such circumstance, notification should be turned off. &lt;i&gt;(Otherwise, you'll get a lot of error on the OpenSSO debug log complaining about non-contactable agents.)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mYldKYNK9co/TaabWKTN-yI/AAAAAAAAA_0/FPt4w3pwxsg/s1600/Screen+shot+2011-04-14+at+PM+02.42.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-mYldKYNK9co/TaabWKTN-yI/AAAAAAAAA_0/FPt4w3pwxsg/s400/Screen+shot+2011-04-14+at+PM+02.42.35.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Production Scalability Consideration&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Policy changes are frequent&lt;/li&gt;&lt;li&gt;Sites need to accept the fact that there will always be latency to reflect policy changes&lt;/li&gt;&lt;li&gt;No hard rule on this latency time as long as it's acceptable for the site's specific needs&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;The guideline when setting the Policy Cache Polling Period property is to set it to the lower of the two:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The session idle timeout period&lt;/li&gt;&lt;li&gt;Site’s accepted latency time for policy changes&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1300663825454900220?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1300663825454900220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/web-agent-caching-behavior.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1300663825454900220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1300663825454900220'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/web-agent-caching-behavior.html' title='Web Agent Caching Behavior'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-rann05aJ7_g/TaabWsWQ6ZI/AAAAAAAAA_4/qR9t6GXMV2M/s72-c/Screen+shot+2011-04-14+at+PM+02.40.06.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1426604728736526357</id><published>2011-04-12T18:10:00.000+08:00</published><updated>2011-04-12T18:10:12.366+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Unable to find active Access Manager Auth server</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If a protected application is running (with Policy Agent), but the backend OpenAM/OpenSSO server is down, you'll get &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;"Forbidden"&lt;/span&gt;&lt;/b&gt; error on the web browser.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;i&gt;"Your client is not allowed to access the requested object"&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-mUJDOgD7_1Q/TaQj8W1BBZI/AAAAAAAAA_w/3TaVTNEd2bI/s1600/Screen+shot+2011-04-12+at+PM+04.35.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="87" src="http://3.bp.blogspot.com/-mUJDOgD7_1Q/TaQj8W1BBZI/AAAAAAAAA_w/3TaVTNEd2bI/s320/Screen+shot+2011-04-12+at+PM+04.35.44.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The following will be captured in the amAgent log:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wI1LGB3UIUc/TaQj7yF06GI/AAAAAAAAA_s/R3bEWpby69A/s1600/Screen+shot+2011-04-12+at+PM+04.36.28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://1.bp.blogspot.com/-wI1LGB3UIUc/TaQj7yF06GI/AAAAAAAAA_s/R3bEWpby69A/s400/Screen+shot+2011-04-12+at+PM+04.36.28.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;b&gt;am_web_get_url_to_redirect: unable to find active Access Manager Auth server.&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1426604728736526357?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1426604728736526357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/unable-to-find-active-access-manager.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1426604728736526357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1426604728736526357'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/unable-to-find-active-access-manager.html' title='Unable to find active Access Manager Auth server'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-mUJDOgD7_1Q/TaQj8W1BBZI/AAAAAAAAA_w/3TaVTNEd2bI/s72-c/Screen+shot+2011-04-12+at+PM+04.35.44.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4718945480240179095</id><published>2011-04-11T12:18:00.000+08:00</published><updated>2011-04-11T12:18:22.932+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>ERROR: Invalid Agent: Could not get agent for the realm</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Sometimes, when CDSSO is configured, one will encounter HTTP Status 500 after a successful login.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. Access protected application&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. Redirect to OpenSSO Login Page&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. Upon successful login, redirect back to protected application&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Step 3 is not happening. Instead, user encounters HTTP Status 500.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-mCI7GXD6y44/TaJ-bq-B8GI/AAAAAAAAA_k/XShWd9bnHgw/s1600/Screen+shot+2011-04-11+at+AM+11.05.22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" src="http://1.bp.blogspot.com/-mCI7GXD6y44/TaJ-bq-B8GI/AAAAAAAAA_k/XShWd9bnHgw/s400/Screen+shot+2011-04-11+at+AM+11.05.22.png" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you take a look at the amAgent log on the protected application side, there is nothing unusual. All seems good.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Something is definitely wrong on the OpenSSO server end.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8RR_WtJoZbk/TaKApBOjl3I/AAAAAAAAA_o/OM3vk77_2hk/s1600/Screen+shot+2011-04-11+at+AM+11.54.45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="92" src="http://3.bp.blogspot.com/-8RR_WtJoZbk/TaKApBOjl3I/AAAAAAAAA_o/OM3vk77_2hk/s400/Screen+shot+2011-04-11+at+AM+11.54.45.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The problem is &lt;b&gt;&lt;i&gt;"Unknown Host Exception"&lt;/i&gt;&lt;/b&gt;. &amp;nbsp;Add the FQDN to the /etc/hosts resolves the issue!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4718945480240179095?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4718945480240179095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/error-invalid-agent-could-not-get-agent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4718945480240179095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4718945480240179095'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/error-invalid-agent-could-not-get-agent.html' title='ERROR: Invalid Agent: Could not get agent for the realm'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-mCI7GXD6y44/TaJ-bq-B8GI/AAAAAAAAA_k/XShWd9bnHgw/s72-c/Screen+shot+2011-04-11+at+AM+11.05.22.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3057277463391311965</id><published>2011-04-04T17:58:00.002+08:00</published><updated>2011-04-04T18:01:09.100+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>OpenAM 9.5.2 CLI Configuration</title><content type='html'>I was trying to install a new install of OpenAM 9.5.2 for a POC using the GUI Configurator. (Read &lt;a href="http://azlabs.blogspot.com/2011/03/administration-connector-self-signed.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The problem then was the embedded OpenDS 2.3 will always create a Administrator Connector Self-Signed Certificate using the hostname. If this hostname is not defined in /etc/hosts, configuration will bomb.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;ERROR: AMSetupServlet.configure: error&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;org.opends.server.types.InitializationException: &lt;span class="Apple-style-span" style="color: red;"&gt;The administration connector self-signed certificate cannot be generated because the following error occurred: openam: openam&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;at org.opends.server.admin.AdministrationConnector.handleCertifExceptions(AdministrationConnector.java:776)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;at org.opends.server.admin.AdministrationConnector.createSelfSignedCertifIfNeeded(AdministrationConnector.java:757)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;at org.opends.server.admin.AdministrationConnector.initializeAdministrationConnector(AdministrationConnector.java:181)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today, I tried to find out whether or not this can be workaround by using CLI configuration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SERVER_URL=http://openam.sg.azlabs:9080&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DEPLOYMENT_URI=/openam71&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BASE_DIR=/home/openam952/openam71&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;locale=en_US&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PLATFORM_LOCALE=en_US&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;AM_ENC_KEY=wKO7mExvCqVXETTtsgU4HgtvqBXrFzSW&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ADMIN_PWD=password&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;AMLDAPUSERPASSWD=amldapuser&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;COOKIE_DOMAIN=.sg.azlabs&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DATA_STORE=embedded&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DIRECTORY_SSL=SIMPLE&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DIRECTORY_SERVER=openam.sg.azlabs&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DIRECTORY_PORT=51389&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DIRECTORY_ADMIN_PORT=8888&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DIRECTORY_JMX_PORT=1689&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ROOT_SUFFIX=dc=opensso,dc=java,dc=net&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DS_DIRMGRDN=cn=Directory Manager&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DS_DIRMGRPASSWD=password&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;## Leave (blank) will default to embedded DATA_STORE&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;USERSTORE_TYPE=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No use.&lt;br /&gt;&lt;br /&gt;The OpenDS is still trying to create the&amp;nbsp;Administrator Connector Self-Signed Certificate using the hostname.&lt;br /&gt;&lt;br /&gt;By the way, in OpenAM 9.5.2, with the upgrade of OpenDS from 1.x to 2.3, the following 2 attribute-value pairs are required:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;DIRECTORY_ADMIN_PORT=8888&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;DIRECTORY_JMX_PORT=1689&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Quite a painful experience as the documentation wasn't there. I had to read the source code and trace what was required by the configurator.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For those interested, I was looking at the method &lt;b&gt;&lt;i&gt;runOpenDSSetup (...)&lt;/i&gt;&lt;/b&gt; in&amp;nbsp;&lt;b&gt;EmbeddedOpenDS.java&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;setupCmd[2] = (String) map.get(SetupConstants.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CONFIG_VAR_DIRECTORY_ADMIN_SERVER_PORT&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;setupCmd[4] = (String) map.get(SetupConstants.CONFIG_VAR_ROOT_SUFFIX);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;setupCmd[6] = (String) map.get(SetupConstants.CONFIG_VAR_DS_MGR_DN);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;setupCmd[8] = (String) map.get(SetupConstants.CONFIG_VAR_DIRECTORY_SERVER_PORT);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;setupCmd[13] = (String) map.get(SetupConstants.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;CONFIG_VAR_DIRECTORY_JMX_SERVER_PORT&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then I went to SetupConstants.java to find out what attribute names are required:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* Configuration Variable for directory server admin port.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;String CONFIG_VAR_DIRECTORY_ADMIN_SERVER_PORT = "&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DIRECTORY_ADMIN_PORT&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;";&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* Configuration Variable for directory server jmx port.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;String CONFIG_VAR_DIRECTORY_JMX_SERVER_PORT = "&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;DIRECTORY_JMX_PORT&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;";&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3057277463391311965?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3057277463391311965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/04/openam-952-cli-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3057277463391311965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3057277463391311965'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/04/openam-952-cli-configuration.html' title='OpenAM 9.5.2 CLI Configuration'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2841712902711040851</id><published>2011-03-28T10:15:00.001+08:00</published><updated>2011-03-28T10:18:20.030+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Policy Configuration in OpenSSO 8.0 U2 Patch 1 still not working</title><content type='html'>This is a follow up to my &lt;a href="http://azlabs.blogspot.com/2011/02/active-directory-primary-server.html"&gt;post&lt;/a&gt; in Feb. I was trying to configure my authentication sources in a &lt;b&gt;failover/load-balanced&lt;/b&gt; manner. It was not successful in OpenSSO 8.0 U2, but that was fine since I wrote my own authentication module. Thus was able to fix the bug within my own module.&lt;br /&gt;&lt;br /&gt;However, there is another section in OpenSSO which we need to configure the same way - Policy Configuration. We have since upgraded to OpenSSO 8.0 U2 Patch 1. However, the same bug exist.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Q2AeraF4DTE/TY_tnnOvxDI/AAAAAAAAA_Y/v9UGR5XXTk4/s1600/Screen+shot+2011-03-25+at+AM+10.54.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="138" src="http://2.bp.blogspot.com/-Q2AeraF4DTE/TY_tnnOvxDI/AAAAAAAAA_Y/v9UGR5XXTk4/s320/Screen+shot+2011-03-25+at+AM+10.54.39.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;As long as the format is "local server name|host name:port", the OpenSSO server will get confused and&amp;nbsp;will not parse the string properly.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;i&gt;What's the workaround?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-t-73O_SYirI/TY_toEIaA5I/AAAAAAAAA_c/sraSp2jrL-k/s1600/Screen+shot+2011-03-25+at+AM+11.10.23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="138" src="http://4.bp.blogspot.com/-t-73O_SYirI/TY_toEIaA5I/AAAAAAAAA_c/sraSp2jrL-k/s320/Screen+shot+2011-03-25+at+AM+11.10.23.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The best we can do is to configure OpenSSO in a load-balanced manner (point to &lt;b&gt;&lt;i&gt;localhost&lt;/i&gt;&lt;/b&gt;). Failover is not possible in this configuration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2841712902711040851?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2841712902711040851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/policy-configuration-in-opensso-80-u2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2841712902711040851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2841712902711040851'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/policy-configuration-in-opensso-80-u2.html' title='Policy Configuration in OpenSSO 8.0 U2 Patch 1 still not working'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Q2AeraF4DTE/TY_tnnOvxDI/AAAAAAAAA_Y/v9UGR5XXTk4/s72-c/Screen+shot+2011-03-25+at+AM+10.54.39.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7599438940522745194</id><published>2011-03-25T12:11:00.001+08:00</published><updated>2011-03-25T12:12:29.322+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO 8.0 U2 Patch 2 available</title><content type='html'>OpenSSO 8.0 U2 Patch 2 has just been released on 12th March 2011. That's a pretty fast release since the last patch release (U2 Patch 1) was just in Jan 2011.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-LDhgzbg1gBU/TYwV6h8XPHI/AAAAAAAAA_U/FSEn5-epdJw/s1600/Screen+shot+2011-03-25+at+PM+12.09.37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="61" src="https://lh6.googleusercontent.com/-LDhgzbg1gBU/TYwV6h8XPHI/AAAAAAAAA_U/FSEn5-epdJw/s400/Screen+shot+2011-03-25+at+PM+12.09.37.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(from 141655-06) U2 Patch 2&lt;br /&gt;Problem Description: &lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7002787 OpenSSO 8.0 u2 &amp;amp; u2p1 not working with Active Directory DataStore&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6987837 OpenSSO8U1P3 - SystemTimerPool - Throws ArrayIndexOutOfBoundsException message regularily&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7006491 ERROR: "Not a supported type: FILTEREDROLE" following opensso upgrade when assigning privileges&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6994715 OpenSSO update 1 patch 3 oracle db logging error: ORA-01704: String Literal Too Long&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7000981 Upgrading Am 7.1 patch3 deployment as a site to OpenSSO 8 U1 patch3 Servers and sites tab dissapear&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7005627 Opensso8.0U1P3-sfo enabled attribute in the Secondary instance was missing&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6993122 SPNameQualifier element should be removed from NameIDPolicy in SAML AuthnRequest&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6935201 OpenSSO U1P3: DAUI sends errors after user reloads DAUI login url thrice&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6677966 HttpServletRequest/HttpServletResponse not available in AMLoginModule when using Dist AuthUI&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6982882 Browser goes into loop condition for an OpenSSO login when a policy requires realm authentication&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6982149 OpenSSO - Null Pointer Exception during session upgrade&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6979889 8.0u2 patch 1: Update version of jss4.jar in opensso&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6996134 OpenSSO Authentication allows access to users to a Realm to which Users who do not belong to&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6986916 problem with AM 7.1 patch 4 DAUI&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6992299 problem with AM 7.1 patch 4&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6982233 Migrate AM7.0p11 to OpenSSO 8.0u2: legacy agent profiles are still not shown on the console properly&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7003167 CDCClientServlet regression with bugfix 6896456 using distauth&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7007659 ssopreupgrade.bat stop in initialize with Can't find bundle for name ssoUpgrade&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7012182 URI is considered as URL in the goto parameter when it is URL-encoded&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7018596 AM 7.1 patch3 to OpenSSO 8.0 update2 upgrade displays configuration page post upgrade&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7019578 After Upgrade from AM7.1p3 to OpenSSO 8.0:"Server error" while hitting "platform" button on admin console&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;7016248 problem with Accessmanager&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Jan release (U2 Patch 1) was a major for us in the project I am currently in for the local Education ministry.&lt;br /&gt;&lt;br /&gt;There was a bug in the SJSWS 7 Policy Agent which happily redirecting a POST request as a GET request. This broke our single sign-on integration with Sun IdM. In this particular case, the Forget Password Wizard broke.&lt;br /&gt;&lt;br /&gt;We tested U2 Patch 1 and the bug was resolved. What was fixed? I do not know since it's a closed source now.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7599438940522745194?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7599438940522745194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/opensso-80-u2-patch-2-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7599438940522745194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7599438940522745194'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/opensso-80-u2-patch-2-available.html' title='OpenSSO 8.0 U2 Patch 2 available'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-LDhgzbg1gBU/TYwV6h8XPHI/AAAAAAAAA_U/FSEn5-epdJw/s72-c/Screen+shot+2011-03-25+at+PM+12.09.37.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7062273876548439524</id><published>2011-03-22T10:42:00.000+08:00</published><updated>2011-03-22T10:42:49.410+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>The administration connector self-signed certificate cannot be generated</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I was trying to setup OpenAM on a new VM for POC.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In customer environment, the trend these days is to move away from Solaris OS (which I am very familiar with for the past 7 years) and to adopt Linux as much as possible. Nothing wrong with the OS, just that the physical boxes have got more and more expensive.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So for this new VM, I have CentOS 5.5 installed (since most customers will be installing RHEL).&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It shouldn't be too difficult to install, I thought. I was wrong! I kept getting the following error:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;i&gt;The administration connector self-signed certificate cannot be generated because the following error occurred: openam: openam.&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-8E_Hlhka41A/TYgGsf4qYtI/AAAAAAAAA_I/i7gh58gadT4/s1600/Screen+shot+2011-03-21+at+PM+02.51.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" src="https://lh4.googleusercontent.com/-8E_Hlhka41A/TYgGsf4qYtI/AAAAAAAAA_I/i7gh58gadT4/s400/Screen+shot+2011-03-21+at+PM+02.51.54.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I checked the Network Configuration and found that I have a matching &lt;b&gt;&lt;i&gt;Hostname: openam&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-iy51XSjCFV4/TYgGj4qIWKI/AAAAAAAAA_E/dNvY0prr-x0/s1600/Screen+shot+2011-03-21+at+PM+02.39.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="https://lh4.googleusercontent.com/-iy51XSjCFV4/TYgGj4qIWKI/AAAAAAAAA_E/dNvY0prr-x0/s320/Screen+shot+2011-03-21+at+PM+02.39.50.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the end, I found out that I need a matching entry in /etc/hosts.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-F2iaxsPLW3o/TYgMDIpqbJI/AAAAAAAAA_Q/1DEWQFDZL5k/s1600/Screen+shot+2011-03-22+at+AM+10.39.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="58" src="https://lh3.googleusercontent.com/-F2iaxsPLW3o/TYgMDIpqbJI/AAAAAAAAA_Q/1DEWQFDZL5k/s400/Screen+shot+2011-03-22+at+AM+10.39.35.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;i&gt;The last entry "openam" is required.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-pyrobSblv2c/TYgLKHtPMCI/AAAAAAAAA_M/o3V_mzArpiM/s1600/Screen+shot+2011-03-21+at+PM+03.15.15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="https://lh4.googleusercontent.com/-pyrobSblv2c/TYgLKHtPMCI/AAAAAAAAA_M/o3V_mzArpiM/s400/Screen+shot+2011-03-21+at+PM+03.15.15.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Very strange! How come in "Configuration Store Details", the Host Name is "localhost" and is non-editable? How does that "localhost" get mapped to "openam"? Kind of confused and distracted during debugging.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7062273876548439524?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7062273876548439524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/administration-connector-self-signed.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7062273876548439524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7062273876548439524'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/administration-connector-self-signed.html' title='The administration connector self-signed certificate cannot be generated'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-8E_Hlhka41A/TYgGsf4qYtI/AAAAAAAAA_I/i7gh58gadT4/s72-c/Screen+shot+2011-03-21+at+PM+02.51.54.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8290844710880169888</id><published>2011-03-14T12:37:00.000+08:00</published><updated>2011-03-14T12:37:29.913+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Sun IdM reconciliation of Sun OpenSSO accounts</title><content type='html'>In the project that I am currently onboard, besides Single Sign-On, we have Identity Management in place.&lt;br /&gt;&lt;b&gt;&lt;i&gt;Sun OpenSSO + Sun Identity Manager (aka Oracle OpenSSO + Oracle Waveset)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As OpenSSO is one of the Identity resources, we need to reconcile large number of accounts ( &amp;gt;40,000 in development ) into OpenSSO, but the reconciliation process always fail.&lt;br /&gt;&lt;br /&gt;It took us pretty long to discover what is causing &amp;nbsp;- do remember to turn off debugging in OpenSSO.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-CFsphcoK2IU/TX2ZYwLbnuI/AAAAAAAAA_A/P_Zai-PBufU/s1600/Screen+shot+2011-03-11+at+PM+06.11.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="53" src="https://lh4.googleusercontent.com/-CFsphcoK2IU/TX2ZYwLbnuI/AAAAAAAAA_A/P_Zai-PBufU/s400/Screen+shot+2011-03-11+at+PM+06.11.00.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The debug log &lt;b&gt;&lt;i&gt;IdRepo&lt;/i&gt;&lt;/b&gt; was too verbose (I turned to message logging in development) and was spending too much time logging, than trying to help in reconciliation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8290844710880169888?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8290844710880169888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/sun-idm-reconciliation-of-sun-opensso.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8290844710880169888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8290844710880169888'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/sun-idm-reconciliation-of-sun-opensso.html' title='Sun IdM reconciliation of Sun OpenSSO accounts'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-CFsphcoK2IU/TX2ZYwLbnuI/AAAAAAAAA_A/P_Zai-PBufU/s72-c/Screen+shot+2011-03-11+at+PM+06.11.00.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2702403265075420243</id><published>2011-03-14T11:26:00.001+08:00</published><updated>2011-03-14T11:27:41.486+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>amtune Issue</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The Single Sign-On infrastructure which I helped to architect for the local ministry is about to go LIVE. I'm trying to tune the OpenSSO server before it's launched - amtune comes to mind. It's a built-in tool.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;However, when I run the utility, I kept hanging at the following stage:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-ag6DU4eGplw/TX2G8CfIfVI/AAAAAAAAA-8/D5ATWmccll0/s1600/Screen+shot+2011-03-11+at+PM+04.18.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="https://lh6.googleusercontent.com/-ag6DU4eGplw/TX2G8CfIfVI/AAAAAAAAA-8/D5ATWmccll0/s400/Screen+shot+2011-03-11+at+PM+04.18.44.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;"Checking Application Server JVM mode (32-bit or 64-bit) for AS 9/Glassfish v2"&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's not moving. I waited for as long as 15 minutes. This can't be normal as I have used amtune in previous version of Sun Access Manager.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I debugged the error log file. Nothing unusual. I realized the error shown on my shell prompt mapped to the following line in the error log file:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;# /sso/opt/gf211/bin/asadmin generate-jvm-report --user admin --passwordfile /tmp/asadminpass --host localhost --port 8888 --secure --interactive=false&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Being curious, I copied the line and tried to execute it manually. Found it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-r_KN5Z5KghM/TX2G61QuZpI/AAAAAAAAA-4/m_ddJp6t6Os/s1600/Screen+shot+2011-03-11+at+PM+04.19.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="https://lh3.googleusercontent.com/-r_KN5Z5KghM/TX2G61QuZpI/AAAAAAAAA-4/m_ddJp6t6Os/s400/Screen+shot+2011-03-11+at+PM+04.19.46.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The OpenSSO servers are SSL-enabled and the keystore in the system's JVM has not trusted the certificate yet. I answered "y" to the above.&lt;br /&gt;&lt;br /&gt;Re-executed amtune again. Everything goes smoothly after that!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2702403265075420243?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2702403265075420243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/amtune-issue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2702403265075420243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2702403265075420243'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/amtune-issue.html' title='amtune Issue'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-ag6DU4eGplw/TX2G8CfIfVI/AAAAAAAAA-8/D5ATWmccll0/s72-c/Screen+shot+2011-03-11+at+PM+04.18.44.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7534342366838700509</id><published>2011-03-11T14:18:00.000+08:00</published><updated>2011-03-11T14:18:36.955+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Sun DS with OpenSSO schema - High Available Connections</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In a highly-available setup, each OpenSSO server is recommended to connect to a dedicated Sun Directory Server for its Data Store. The other Directory Server will be configured as the secondary server (dotted lines). This ideal setup will yield better performance.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-twhVMUGVclM/TXm5B5TxtfI/AAAAAAAAA-Y/Z9G0xkSFyMI/s1600/Screen+shot+2011-03-11+at+PM+01.52.06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh6.googleusercontent.com/-twhVMUGVclM/TXm5B5TxtfI/AAAAAAAAA-Y/Z9G0xkSFyMI/s1600/Screen+shot+2011-03-11+at+PM+01.52.06.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;How to do achieve that in OpenSSO/OpenAM via the AM Console?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-CcpsjIVjdqs/TXm5DGelteI/AAAAAAAAA-g/bGRohdExfSs/s1600/Screen+shot+2011-03-11+at+AM+11.55.08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="https://lh3.googleusercontent.com/-CcpsjIVjdqs/TXm5DGelteI/AAAAAAAAA-g/bGRohdExfSs/s320/Screen+shot+2011-03-11+at+AM+11.55.08.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The above setup is wrong. It means both OpenSSO servers will connect to LDAP1 always. And only when LDAP1 is down, will both of them redirect to LDAP2.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-yQlyaRciRqE/TXm75iH7luI/AAAAAAAAA-w/8rJzbCLXWQk/s1600/Screen+shot+2011-03-11+at+PM+01.52.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-yQlyaRciRqE/TXm75iH7luI/AAAAAAAAA-w/8rJzbCLXWQk/s1600/Screen+shot+2011-03-11+at+PM+01.52.10.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is not what we want to achieve. We want the setup to be highly available and efficient. (aka good performance)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, we need to play with &lt;b&gt;&lt;i&gt;Format: LDAP server host name:port | server_ID | site_ID&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Problem is how do we know what is the value for &lt;b&gt;server_ID&lt;/b&gt; and what is the value for &lt;b&gt;site_ID&lt;/b&gt;?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-UFyEq3jpi2Q/TXm5FiiH4jI/AAAAAAAAA-s/YBvBVfZ2Gi8/s1600/Screen+shot+2011-03-11+at+AM+11.51.25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh3.googleusercontent.com/-UFyEq3jpi2Q/TXm5FiiH4jI/AAAAAAAAA-s/YBvBVfZ2Gi8/s400/Screen+shot+2011-03-11+at+AM+11.51.25.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;As usual, I whack the OpenDS directly. The configuration data for the above screen is stored in &lt;b&gt;&lt;i&gt;ou=iPlanetAMPlatformService&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The configuration for Site is stored in &lt;b&gt;&lt;i&gt;ou=com-sun-identity-sites&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-K9vmXSaQTzQ/TXm5E5A4j6I/AAAAAAAAA-o/PZKjMnpqQ9g/s1600/Screen+shot+2011-03-11+at+AM+11.53.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="https://lh5.googleusercontent.com/-K9vmXSaQTzQ/TXm5E5A4j6I/AAAAAAAAA-o/PZKjMnpqQ9g/s400/Screen+shot+2011-03-11+at+AM+11.53.36.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The configuration for Servers is stored in&amp;nbsp;&lt;b&gt;&lt;i&gt;ou=com-sun-identity-servers&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-iPGnbVd_jVw/TXm5EK8hSKI/AAAAAAAAA-k/Lj5KbWSiQqo/s1600/Screen+shot+2011-03-11+at+AM+11.54.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="125" src="https://lh3.googleusercontent.com/-iPGnbVd_jVw/TXm5EK8hSKI/AAAAAAAAA-k/Lj5KbWSiQqo/s400/Screen+shot+2011-03-11+at+AM+11.54.33.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So, the configuration should be as follows:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-KbX8fm7WUsA/TXm5CmxTTnI/AAAAAAAAA-c/uQW2S2ntrQg/s1600/Screen+shot+2011-03-11+at+AM+11.56.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" src="https://lh3.googleusercontent.com/-KbX8fm7WUsA/TXm5CmxTTnI/AAAAAAAAA-c/uQW2S2ntrQg/s320/Screen+shot+2011-03-11+at+AM+11.56.54.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Nice!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7534342366838700509?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7534342366838700509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/sun-ds-with-opensso-schema-high.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7534342366838700509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7534342366838700509'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/sun-ds-with-opensso-schema-high.html' title='Sun DS with OpenSSO schema - High Available Connections'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-twhVMUGVclM/TXm5B5TxtfI/AAAAAAAAA-Y/Z9G0xkSFyMI/s72-c/Screen+shot+2011-03-11+at+PM+01.52.06.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3091500514022802576</id><published>2011-03-08T08:53:00.005+08:00</published><updated>2011-03-08T08:53:01.029+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Backing up configuration data -- Part II</title><content type='html'>The configuration data which is stored in the embedded OpenDS/OpenDJ can be dumped out into a XML file.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s1600/Screen+shot+2011-02-10+at+PM+02.51.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s320/Screen+shot+2011-02-10+at+PM+02.51.18.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This little script can do the job:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;/sso/bin/tools/ossotools/opensso/bin/ssoadm export-svc-cfg -u amadmin -f /tmp/.admin.pwd -e secretkeytoencryptpassword -o /tmp/svc-config-bkup.xml&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;echo "Configuration dumped to /tmp/svc-config-bkup.xml"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3091500514022802576?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3091500514022802576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/backing-up-configuration-data-part-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3091500514022802576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3091500514022802576'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/backing-up-configuration-data-part-ii.html' title='Backing up configuration data -- Part II'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s72-c/Screen+shot+2011-02-10+at+PM+02.51.18.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3883608927210904151</id><published>2011-03-07T15:54:00.001+08:00</published><updated>2011-03-07T16:44:55.121+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Backing up configuration data</title><content type='html'>Before a project goes LIVE, what do we usually do? Make sure backup is in place in case disaster kicks in.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-DXabpt1ZojU/TXSHQBNX1SI/AAAAAAAAA-Q/rV_t9X42b44/s1600/Screen+shot+2011-03-07+at+PM+03.20.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh4.googleusercontent.com/-DXabpt1ZojU/TXSHQBNX1SI/AAAAAAAAA-Q/rV_t9X42b44/s1600/Screen+shot+2011-03-07+at+PM+03.20.03.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;So, this is what I am doing this week. I need to have a backup mechanism for the Single Sign-On infrastructure which I have set up for the local education ministry.&lt;br /&gt;&lt;br /&gt;This book comes in handy - &lt;a href="http://link.packtpub.com/nIvZoR"&gt;OpenAM&lt;/a&gt; by Indira. There's this chapter on &lt;b&gt;&lt;i&gt;Backup, Recovery and Logging&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-rB6bndP7Hag/TXSPNJDHMWI/AAAAAAAAA-U/Q3nr8lRbbG0/s1600/Screen+shot+2011-03-07+at+PM+03.54.01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="https://lh4.googleusercontent.com/-rB6bndP7Hag/TXSPNJDHMWI/AAAAAAAAA-U/Q3nr8lRbbG0/s200/Screen+shot+2011-03-07+at+PM+03.54.01.png" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The safest way to backup OpenSSO/OpenAM configuration data is non other than filesystem backup. (not mentioned in &lt;a href="http://download.oracle.com/docs/cd/E19681-01/820-3885/gjqdo/index.html"&gt;Sun's documentation&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The critical files and directories that need to be backed up are as follows:&lt;br /&gt;• bootstrap&lt;br /&gt;• OpenDS (whole directory)&lt;br /&gt;• .version&lt;br /&gt;• .configParam&lt;br /&gt;• certificate stores&lt;br /&gt;• config/xml (whole directory; if there is customized service schema)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ssoadmin@node01 $ /usr/sfw/bin/gtar -cvf opensso-bak.tar --exclude "opensso/opends/logs" opensso/bootstrap opensso/opends opensso/.configParam opensso/.version opensso/.configParam opensso/opensso/.keypass opensso/opensso/.storepass opensso/opensso/keystore.jks&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;opensso-config&gt;If you are lazy, backup the whole configuration directory. But I would suggest discarding the debug and log directories.&amp;nbsp; &lt;/opensso-config&gt;&lt;br /&gt;&lt;opensso-config&gt;&lt;br /&gt;&lt;/opensso-config&gt;&lt;br /&gt;&lt;opensso-config&gt;That can take up a huge amount of space if the log is verbose.&lt;/opensso-config&gt;&lt;br /&gt;&lt;opensso-config&gt;&lt;br /&gt;&lt;/opensso-config&gt;&lt;br /&gt;&lt;opensso-config&gt;&lt;br /&gt;&lt;/opensso-config&gt;&lt;br /&gt;&lt;opensso-config&gt;.&lt;/opensso-config&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3883608927210904151?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3883608927210904151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/03/backing-up-configuration-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3883608927210904151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3883608927210904151'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/03/backing-up-configuration-data.html' title='Backing up configuration data'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-DXabpt1ZojU/TXSHQBNX1SI/AAAAAAAAA-Q/rV_t9X42b44/s72-c/Screen+shot+2011-03-07+at+PM+03.20.03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6244153429750157823</id><published>2011-02-25T15:07:00.000+08:00</published><updated>2011-02-25T15:07:07.592+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Unexpected LDAP error - ssoadm</title><content type='html'>The project I am currently on requires High Availability for Single Sign-On in the production environment. A site is configured for this purpose having 2 nodes.&lt;br /&gt;&lt;br /&gt;Today, I was debugging something and shut down Node 2 and used ssoadm.jsp to update a service (update-svc) which I previously created.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TDcG7OdBBtM/TWdTGMAInTI/AAAAAAAAA-I/RClS4vcTTt0/s1600/Screen+shot+2011-02-25+at+AM+11.06.31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://2.bp.blogspot.com/-TDcG7OdBBtM/TWdTGMAInTI/AAAAAAAAA-I/RClS4vcTTt0/s400/Screen+shot+2011-02-25+at+AM+11.06.31.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I tried to save, I get &lt;b&gt;&lt;i&gt;Unexpected LDAP error&lt;/i&gt;&lt;/b&gt; on the UI.&lt;br /&gt;&lt;br /&gt;I found out why when I saw the following in Configuration log file:&lt;br /&gt;&lt;br /&gt;ERROR: SMSLdapObject.modify(): Error in modifying entry: ou=1.0,ou=sunAMAuthXXXAuthService,ou=services,o=XXX,c=sg&lt;br /&gt;By Principal: id=amadmin,ou=user,o=XXX,c=sg&lt;br /&gt;com.sun.identity.shared.ldap.LDAPException: error result (53); &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;i&gt;The Replication is configured for suffix &amp;nbsp;o=Ministry of Education,c=SG but was not able to connect to any Replication Server&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.shared.ldap.LDAPConnection.checkMsg(LDAPConnection.java:4875)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.shared.ldap.LDAPConnection.modify(LDAPConnection.java:3163)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.shared.ldap.LDAPConnection.modify(LDAPConnection.java:3102)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.shared.ldap.LDAPConnection.modify(LDAPConnection.java:3111)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.shared.ldap.LDAPConnection.modify(LDAPConnection.java:3077)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.sun.identity.sm.ldap.SMSLdapObject.modify(SMSLdapObject.java:435)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Hmm... any configuration change requires both nodes in the site to be up! Is this built by design? I need to find out more ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6244153429750157823?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6244153429750157823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/unexpected-ldap-error-ssoadm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6244153429750157823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6244153429750157823'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/unexpected-ldap-error-ssoadm.html' title='Unexpected LDAP error - ssoadm'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-TDcG7OdBBtM/TWdTGMAInTI/AAAAAAAAA-I/RClS4vcTTt0/s72-c/Screen+shot+2011-02-25+at+AM+11.06.31.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8320686182013866142</id><published>2011-02-25T14:51:00.000+08:00</published><updated>2011-02-25T14:51:08.828+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Model must not be null in CCPropertySheet()</title><content type='html'>The project I am currently on requires High Availability for Single Sign-On in the production environment. (we have 2 nodes) The Authentication module is customized as we have special business logic to handle during users' login process.&lt;br /&gt;&lt;br /&gt;So to plug in a new Authentication module is easy.&lt;br /&gt;1. Deploy the jar&lt;br /&gt;2. Dump the properties file in classes directory&lt;br /&gt;3. Add in the XML file in config/auth/default directory&lt;br /&gt;4. Create the new service&lt;br /&gt;5. Register the authentication module&lt;br /&gt;&lt;br /&gt;All went well with Node 1. However, I kept getting &lt;b&gt;&lt;i&gt;Model must not be null in CCPropertySheet()&lt;/i&gt;&lt;/b&gt; error on Node 2. I have restarted Node 2 more than once. Strange!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PwhtuT6Ifks/TWY3d55Lc9I/AAAAAAAAA-E/gvUDCT1CM6c/s1600/Screen+shot+2011-02-24+at+PM+06.43.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://3.bp.blogspot.com/-PwhtuT6Ifks/TWY3d55Lc9I/AAAAAAAAA-E/gvUDCT1CM6c/s400/Screen+shot+2011-02-24+at+PM+06.43.14.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So what really happened?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have forgotten to apply Step 1 - 3 on node 2. Ha!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;(Note: Step 4 - 5 are only done once via the ssoadm.jsp UI)&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8320686182013866142?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8320686182013866142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/model-must-not-be-null-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8320686182013866142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8320686182013866142'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/model-must-not-be-null-in.html' title='Model must not be null in CCPropertySheet()'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-PwhtuT6Ifks/TWY3d55Lc9I/AAAAAAAAA-E/gvUDCT1CM6c/s72-c/Screen+shot+2011-02-24+at+PM+06.43.14.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-643969600382203285</id><published>2011-02-21T11:09:00.000+08:00</published><updated>2011-02-21T11:09:09.446+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Problems Solved By OpenSSO</title><content type='html'>I was reading the newly released &lt;a href="http://link.packtpub.com/nIvZoR"&gt;OpenAM&lt;/a&gt; book by Indira Thangasamy and came across this diagram in the overview section.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5Ava7HUC13E/TWHWB9QEZMI/AAAAAAAAA-A/rISzSGeieXc/s1600/Screen+shot+2011-02-21+at+AM+10.47.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="206" src="http://1.bp.blogspot.com/-5Ava7HUC13E/TWHWB9QEZMI/AAAAAAAAA-A/rISzSGeieXc/s400/Screen+shot+2011-02-21+at+AM+10.47.11.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Great stuff! I always salute those who can illustrate the capability of their products in a diagram.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This diagram is able to show the 4 types of problems that OpenSSO/OpenAM is built for:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;1. Access management&lt;br /&gt;2. Federation&lt;br /&gt;3. Securing web services&lt;br /&gt;4. Entitlements&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-643969600382203285?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/643969600382203285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/problems-solved-by-opensso.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/643969600382203285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/643969600382203285'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/problems-solved-by-opensso.html' title='Problems Solved By OpenSSO'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-5Ava7HUC13E/TWHWB9QEZMI/AAAAAAAAA-A/rISzSGeieXc/s72-c/Screen+shot+2011-02-21+at+AM+10.47.11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-601675024898563409</id><published>2011-02-16T11:20:00.000+08:00</published><updated>2011-02-16T11:20:41.500+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>How to decode CSR?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jYVaaZ2H_pY/TVtB7VG7chI/AAAAAAAAA98/qViak7xXNjM/s1600/Screen+shot+2011-02-16+at+AM+11.17.31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-jYVaaZ2H_pY/TVtB7VG7chI/AAAAAAAAA98/qViak7xXNjM/s1600/Screen+shot+2011-02-16+at+AM+11.17.31.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;After generating CSR (Certificate Signing Request) and before submitting to a CA to generate a Server certificate, it would be good if we can double check what has been generated.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If OpenSSL is installed, the following command can be used:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 14px; line-height: 18px;"&gt;openssl req -in mycsr.csr -noout -text&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 14px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;I'm lazy. :) Thanks to SSLShopper. Here's the &lt;a href="http://www.sslshopper.com/csr-decoder.html"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-601675024898563409?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/601675024898563409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/how-to-decode-csr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/601675024898563409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/601675024898563409'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/how-to-decode-csr.html' title='How to decode CSR?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-jYVaaZ2H_pY/TVtB7VG7chI/AAAAAAAAA98/qViak7xXNjM/s72-c/Screen+shot+2011-02-16+at+AM+11.17.31.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8123749274143336288</id><published>2011-02-14T09:32:00.011+08:00</published><updated>2011-02-14T14:48:57.901+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Failed to establish chain from reply</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If your server certificate (end-entity certificate) is signed by a &lt;a href="http://en.wikipedia.org/wiki/Intermediate_certificate_authorities"&gt;Intermediate CA&lt;/a&gt;, then it is important to take note to import both Root CA and Intermediate CA certificates into your keystore (certificate store) before importing the server certificate.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-r8LFTb4sTzk/TVjNve9tglI/AAAAAAAAA94/5GPlay1d82I/s1600/Screen+shot+2011-02-14+at+PM+02.37.20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-r8LFTb4sTzk/TVjNve9tglI/AAAAAAAAA94/5GPlay1d82I/s320/Screen+shot+2011-02-14+at+PM+02.37.20.png" width="155" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Importing only Root CA certificate into the keystore is not sufficient. Otherwise, you'll get the following error when you import the Server certificate without the Intermediate CA certificate - "&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Failed to establish chain from reply&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;".&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-qxHfWYakBnY/TVjNN1_r9pI/AAAAAAAAA90/E1EhAd6Ks_I/s1600/Screen+shot+2011-01-31+at+PM+03.17.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://3.bp.blogspot.com/-qxHfWYakBnY/TVjNN1_r9pI/AAAAAAAAA90/E1EhAd6Ks_I/s400/Screen+shot+2011-01-31+at+PM+03.17.27.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8123749274143336288?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8123749274143336288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/failed-to-establish-chain-from-reply.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8123749274143336288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8123749274143336288'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/failed-to-establish-chain-from-reply.html' title='Failed to establish chain from reply'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-r8LFTb4sTzk/TVjNve9tglI/AAAAAAAAA94/5GPlay1d82I/s72-c/Screen+shot+2011-02-14+at+PM+02.37.20.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4176606143196586516</id><published>2011-02-10T14:49:00.002+08:00</published><updated>2011-02-10T14:52:18.936+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Active Directory Primary Server Configuration for Multiple OpenSSO Servers</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In a large scale IAMS infrastructure setup, it would be better if each OpenSSO server is configured to authenticate against a dedicated authentication source (in my case, Microsoft Active Directory).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Is this feature available in OpenSSO 8.0 U2? Yes, as far as the OpenSSO Admin Console is concerned. &lt;i&gt;(see digram below)&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-JTyLqYZCJLY/TVOC0U7BTPI/AAAAAAAAA9k/8OdjPzB9UY4/s1600/Screen+shot+2011-02-10+at+PM+02.03.32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-JTyLqYZCJLY/TVOC0U7BTPI/AAAAAAAAA9k/8OdjPzB9UY4/s400/Screen+shot+2011-02-10+at+PM+02.03.32.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;However, you need to first figure out what does &lt;b&gt;&lt;i&gt;"local server name"&lt;/i&gt;&lt;/b&gt; means?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I had a hard time figuring out what this really mean. In the end, I had to read the source codes from OpenAM 9.5 (forgerock.com) to figure out. The code refers "local server name" to AM_SERVER_HOST.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;private static final String localDsameServer = SystemPropertiesManager.get(&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #0c343d;"&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constants.AM_SERVER_HOST);&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-fyqKT41X1pg/TVOFSqDLRyI/AAAAAAAAA9o/hiXm8T1h2Eo/s1600/Screen+shot+2011-02-10+at+PM+02.25.26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://3.bp.blogspot.com/-fyqKT41X1pg/TVOFSqDLRyI/AAAAAAAAA9o/hiXm8T1h2Eo/s400/Screen+shot+2011-02-10+at+PM+02.25.26.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;OK, AM_SERVER_HOST should then be FQDN of the OpenSSO server. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Server Name is protocol&lt;protocol&gt;://FQDN&lt;fqdn&gt;:port&lt;port&gt;/opensso-uri&lt;opensso-uri&gt;&lt;/opensso-uri&gt;&lt;/port&gt;&lt;/fqdn&gt;&lt;/protocol&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So, I'm up and running. I have the following in my Active Directory Primary Server:&lt;br /&gt;osso1.xxx.xxx.xxx.sg|ad1.xxx.xxx.sg:636&lt;br /&gt;osso2.xxx.xxx.xxx.sg|ad2.xxx.xxx.sg:636&lt;br /&gt;&lt;br /&gt;I configured the reverse for my Active Directory Secondary Server:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;osso1.xxx.xxx.xxx.sg|ad2.xxx.xxx.sg:636&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;osso2.xxx.xxx.xxx.sg|ad1.xxx.xxx.sg:636&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Theoretically, this will definitely work. I was wrong! There is a bug in OpenSSO 8.0 U2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The method&amp;nbsp;getServerMapAttr() in&amp;nbsp;CollectionHelper class is not able to detect that there are multiple entries. What's worse is it is not able to parse the String with the "|" to return the appropriate Active Directory server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--OKvItcK1XE/TVOJpZApa_I/AAAAAAAAA9s/vrQ0uLzoAzU/s1600/Screen+shot+2011-02-10+at+PM+02.42.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://1.bp.blogspot.com/--OKvItcK1XE/TVOJpZApa_I/AAAAAAAAA9s/vrQ0uLzoAzU/s400/Screen+shot+2011-02-10+at+PM+02.42.33.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The code simply gets the first entry without any parsing and tries to connect. And of course, &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&lt;b&gt;"Unknown host"&lt;/b&gt;&lt;/i&gt;&lt;/span&gt; is thrown.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Luckily, the code for this method in OpenAM 9.5 looks good. I copied and finally fixed the issue.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Thank you, OpenAM!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s1600/Screen+shot+2011-02-10+at+PM+02.51.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://2.bp.blogspot.com/-J5Bvz2zzHDI/TVOLB2fOnNI/AAAAAAAAA9w/AQ72_wMQmUc/s320/Screen+shot+2011-02-10+at+PM+02.51.18.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4176606143196586516?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4176606143196586516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/active-directory-primary-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4176606143196586516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4176606143196586516'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/active-directory-primary-server.html' title='Active Directory Primary Server Configuration for Multiple OpenSSO Servers'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-JTyLqYZCJLY/TVOC0U7BTPI/AAAAAAAAA9k/8OdjPzB9UY4/s72-c/Screen+shot+2011-02-10+at+PM+02.03.32.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-77837457861622965</id><published>2011-02-09T14:34:00.000+08:00</published><updated>2011-02-09T14:34:35.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>An internal authentication error has occurred</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I am near the final milestone of this IAMS project - deploying the Production environment.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;We have a custom Authentication Module for this enterprise Single Sign-On infrastructure. I have done it many times in the development and staging environment and they worked!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;However, I keep getting "&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;i&gt;An internal authentication error has occurred&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;" when this custom Authentication module is turned on.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TVIut1jzopI/AAAAAAAAA9U/WI6TPiq8Tjs/s1600/Screen+shot+2011-02-09+at+PM+01.58.49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="145" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TVIut1jzopI/AAAAAAAAA9U/WI6TPiq8Tjs/s400/Screen+shot+2011-02-09+at+PM+01.58.49.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;No choice. I need to turn on the verbose logging and this is what is been captured in Authentication debug log - &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;i&gt;"unable to find LoginModule class"&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TVIwPD0jFbI/AAAAAAAAA9g/zNcg2A11zLI/s1600/Screen+shot+2011-02-09+at+PM+01.56.53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TVIwPD0jFbI/AAAAAAAAA9g/zNcg2A11zLI/s400/Screen+shot+2011-02-09+at+PM+01.56.53.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ok, I must have made a mistake during the registration of the auth module via ssoadm.jsp. I think I must have key in only the &lt;i&gt;&lt;b&gt;Java class name without the full package path&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TVIutRRhObI/AAAAAAAAA9Q/6_wUx_IHr44/s1600/Screen+shot+2011-02-09+at+PM+01.59.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TVIutRRhObI/AAAAAAAAA9Q/6_wUx_IHr44/s320/Screen+shot+2011-02-09+at+PM+01.59.46.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So I went ahead with ssoadm.jsp again to register with a full package Java class name.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TVIuq29dW4I/AAAAAAAAA9M/NRtfn1N2YhU/s1600/Screen+shot+2011-02-09+at+PM+02.00.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TVIuq29dW4I/AAAAAAAAA9M/NRtfn1N2YhU/s320/Screen+shot+2011-02-09+at+PM+02.00.33.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Restarted OpenSSO server just to play safe. No luck!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Hmmm.... I recalled that in the days of Sun Access Manager 6.x and 7.x, there was no such thing as registering an authentication module via ssoadm.jsp. We did it manually and one of the steps was to add in the Pluggable Authentication Module Classes in Configuration &amp;gt; Core.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So I went ahead to verify the entries. Jackpot!&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TVIwOXQs_rI/AAAAAAAAA9c/2z-1Y6IJ4qg/s1600/Screen+shot+2011-02-09+at+PM+02.03.29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TVIwOXQs_rI/AAAAAAAAA9c/2z-1Y6IJ4qg/s320/Screen+shot+2011-02-09+at+PM+02.03.29.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Removing the last entry resolved the issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-77837457861622965?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/77837457861622965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/02/internal-authentication-error-has.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/77837457861622965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/77837457861622965'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/02/internal-authentication-error-has.html' title='An internal authentication error has occurred'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TVIut1jzopI/AAAAAAAAA9U/WI6TPiq8Tjs/s72-c/Screen+shot+2011-02-09+at+PM+01.58.49.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4792445201690003010</id><published>2011-01-26T23:41:00.001+08:00</published><updated>2011-01-26T23:42:40.766+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>GlassFish + PostgreSQL server bundles</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TUBAMEmFHcI/AAAAAAAAA88/l2sSgjT3jTs/s1600/Screen+shot+2011-01-26+at+11.39.08+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TUBAMEmFHcI/AAAAAAAAA88/l2sSgjT3jTs/s1600/Screen+shot+2011-01-26+at+11.39.08+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I'm pretty curious about the Take-Up Rate of GlassFish with PostgreSQL database bundle. Download &lt;a href="http://openscg.org/se/postgresql/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TUA_wENSy5I/AAAAAAAAA84/hORN7CIPl64/s1600/Screen+shot+2011-01-26+at+11.36.17+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TUA_wENSy5I/AAAAAAAAA84/hORN7CIPl64/s320/Screen+shot+2011-01-26+at+11.36.17+PM.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It has been a long while since I last worked on PostgreSQL database. Ever since I grabbed a copy MySQL, I have never turned back. Ha!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4792445201690003010?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4792445201690003010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/01/glassfish-postgresql-server-bundles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4792445201690003010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4792445201690003010'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/01/glassfish-postgresql-server-bundles.html' title='GlassFish + PostgreSQL server bundles'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TUBAMEmFHcI/AAAAAAAAA88/l2sSgjT3jTs/s72-c/Screen+shot+2011-01-26+at+11.39.08+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2325896957365142952</id><published>2011-01-18T16:17:00.000+08:00</published><updated>2011-01-18T16:17:09.445+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPlanet Web Server'/><title type='text'>Pain upgrading to Oracle iPlanet Web Server 7.0.10</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;As part of the security/hardening measures of my current project, we are required to update every software component to the latest with patches.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It's time to say bye-bye to Sun Java System Web Server branding.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TTVIw9xswhI/AAAAAAAAA8U/SS6sXopTv0g/s1600/Screen+shot+2011-01-18+at+PM+03.54.11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="102" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TTVIw9xswhI/AAAAAAAAA8U/SS6sXopTv0g/s400/Screen+shot+2011-01-18+at+PM+03.54.11.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;However, the upgrade experience wasn't pleasant... *Sigh*&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TTVKsuybYsI/AAAAAAAAA8g/bvmUyv5T1wA/s1600/Screen+shot+2011-01-18+at+PM+04.07.30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TTVKsuybYsI/AAAAAAAAA8g/bvmUyv5T1wA/s400/Screen+shot+2011-01-18+at+PM+04.07.30.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Very strange - &lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;"Cannot upgrade the product from version 7.0U8 to 7.0.10"&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;/span&gt;How can it be? This is not how Sun product works ... Every release should have a proper upgrade path. It has always been so.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What's the hack then?&lt;br /&gt;&lt;br /&gt;Step 1: Go to /appl/opt/webserver7/setup&lt;br /&gt;Step 2: Edit WebServer.inf&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TTVMD0jWpuI/AAAAAAAAA8k/tBnmo35h0hs/s1600/Screen+shot+2011-01-18+at+PM+04.14.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TTVMD0jWpuI/AAAAAAAAA8k/tBnmo35h0hs/s320/Screen+shot+2011-01-18+at+PM+04.14.44.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Step 3: Remove 8 from PRODUCT_SP_VERSION&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Step 4: Remove U8 from PRODUCT_FULL_VERSION&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Step 5: Done&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Welcome to Oracle iPlanet Web Server 7.0.10!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TTVIxkAEhCI/AAAAAAAAA8Y/siyb7FXxqGo/s1600/Screen+shot+2011-01-18+at+PM+03.52.34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TTVIxkAEhCI/AAAAAAAAA8Y/siyb7FXxqGo/s400/Screen+shot+2011-01-18+at+PM+03.52.34.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2325896957365142952?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2325896957365142952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/01/pain-upgrading-to-oracle-iplanet-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2325896957365142952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2325896957365142952'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/01/pain-upgrading-to-oracle-iplanet-web.html' title='Pain upgrading to Oracle iPlanet Web Server 7.0.10'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TTVIw9xswhI/AAAAAAAAA8U/SS6sXopTv0g/s72-c/Screen+shot+2011-01-18+at+PM+03.54.11.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1513014308418703038</id><published>2011-01-17T08:06:00.029+08:00</published><updated>2011-01-17T08:06:00.210+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>ESSO product from PasswordBank</title><content type='html'>I have been involved with numerous SSO (Single Sign-On) projects - some of which are complemented by ESSO (Enterprise Single Sign-On) product.&lt;br /&gt;&lt;br /&gt;Passlogix v-GO SSO was pretty popular. So popular that it's now being bought over by Oracle. So far, I have participated in 2 projects using Passlogix v-GO SSO. Pretty easy to configure if the user source is Microsoft Active Directory. A lot harder if Sun Directory Server is used as the user source. It's basically a Microsoft-centric product (my personal opinion).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TTMolPjqxdI/AAAAAAAAA8M/4ww_us_pESU/s1600/Screen+shot+2011-01-17+at+1.04.28+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="36" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TTMolPjqxdI/AAAAAAAAA8M/4ww_us_pESU/s200/Screen+shot+2011-01-17+at+1.04.28+AM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Today, I came across a ESSO product from &lt;a href="http://www.passwordbank.com/passwordbank-esso/"&gt;PasswordBank&lt;/a&gt;. Started in 2008, still a pretty young company.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TTMom970A7I/AAAAAAAAA8Q/2rv7mdjJf40/s1600/Screen+shot+2011-01-17+at+1.04.43+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TTMom970A7I/AAAAAAAAA8Q/2rv7mdjJf40/s320/Screen+shot+2011-01-17+at+1.04.43+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This product differentiates itself by being able to support Desktop Platforms like Windows, Linux and Mac OS. This is something great! ESSO product has always been very Windows driven.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1513014308418703038?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1513014308418703038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/01/esso-product-from-passwordbank.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1513014308418703038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1513014308418703038'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/01/esso-product-from-passwordbank.html' title='ESSO product from PasswordBank'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TTMolPjqxdI/AAAAAAAAA8M/4ww_us_pESU/s72-c/Screen+shot+2011-01-17+at+1.04.28+AM.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3278528758121729545</id><published>2011-01-14T14:27:00.000+08:00</published><updated>2011-01-14T14:27:18.856+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - Agents and Policies Entries in OpenDS</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For this on-going project which I have been in-charge of since last August, I have been playing around with Agents and Policies more often than my previous projects.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ever wonder where the configuration for the Agents is in OpenDS?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TS_qKWAXEqI/AAAAAAAAA74/zuPUlfc4l8U/s1600/Screen+shot+2011-01-14+at+PM+02.10.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TS_qKWAXEqI/AAAAAAAAA74/zuPUlfc4l8U/s320/Screen+shot+2011-01-14+at+PM+02.10.46.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Answer is ou=AgentService, ou=services, ... :&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TS_qLv85AoI/AAAAAAAAA8A/zUm3mr8jbtQ/s1600/Screen+shot+2011-01-14+at+PM+02.11.09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TS_qLv85AoI/AAAAAAAAA8A/zUm3mr8jbtQ/s1600/Screen+shot+2011-01-14+at+PM+02.11.09.png" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;How about the Policies? Where are they stored?&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TS_qLNJiyuI/AAAAAAAAA78/0Dfn0cVLCa0/s1600/Screen+shot+2011-01-14+at+PM+02.10.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="129" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TS_qLNJiyuI/AAAAAAAAA78/0Dfn0cVLCa0/s320/Screen+shot+2011-01-14+at+PM+02.10.33.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;Answer is ou=iPlanetAMPolicyService, ou=services, ... :&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TS_qL-13fQI/AAAAAAAAA8E/2j33j8TNPvc/s1600/Screen+shot+2011-01-14+at+PM+02.10.17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TS_qL-13fQI/AAAAAAAAA8E/2j33j8TNPvc/s1600/Screen+shot+2011-01-14+at+PM+02.10.17.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I find the latter most useful for me. Instead of creating policies via the OpenSSO Admin Console (which to me is pretty tedious), I'll go direct to OpenDS and edit the sunKeyValue for the xmlpolicy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TS_qcdJq2YI/AAAAAAAAA8I/V_IIS0AEd04/s1600/Screen+shot+2011-01-14+at+PM+02.16.33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TS_qcdJq2YI/AAAAAAAAA8I/V_IIS0AEd04/s400/Screen+shot+2011-01-14+at+PM+02.16.33.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I'm lazy, maybe. :)&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3278528758121729545?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3278528758121729545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2011/01/opensso-agents-and-policies-entries-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3278528758121729545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3278528758121729545'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2011/01/opensso-agents-and-policies-entries-in.html' title='OpenSSO - Agents and Policies Entries in OpenDS'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TS_qKWAXEqI/AAAAAAAAA74/zuPUlfc4l8U/s72-c/Screen+shot+2011-01-14+at+PM+02.10.46.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2898860830009822922</id><published>2010-12-30T12:43:00.000+08:00</published><updated>2010-12-30T12:43:44.460+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Active Directory Authentication Error via OpenSSO</title><content type='html'>We have configured OpenSSO Authentication Service to perform authentication via Microsoft Active&lt;br /&gt;Directory.&lt;br /&gt;&lt;br /&gt;We know that Microsoft Active Directory is able to detect first-time-login, password expired, account locked, account disabled etc ...&lt;br /&gt;&lt;br /&gt;However, by using the in-built Active Directory Authentication module in OpenSSO, it keeps displaying the same error "Invalid credentials" whenever any of the errors is encountered. This confuses the users a lot. It also gives administrator wrong impression of what exactly is the error.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If a manual search is performed, the following is what we get:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;bash-3.00# ldapsearch -h 192.168.131.50 -p 389 -D "cn=cclow,cn=users,dc=central,dc=sg,dc=sun" -b "dc=central,dc=sg,dc=sun" -s sub "objectclass=*"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Enter bind password: &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ldap_simple_bind: Invalid credentials&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ldap_simple_bind: additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 773, v1771&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;bash-3.00# ldapsearch -h 192.168.131.50 -p 389 -D "cn=cclow,cn=users,dc=central,dc=sg,dc=sun" -b "dc=central,dc=sg,dc=sun" -s sub "objectclass=*"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Enter bind password: &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ldap_simple_bind: Invalid credentials&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ldap_simple_bind: additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 533, v1771&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Active Directory has this habit of sending back error messages in 2 lines. The 1st contains what I call it &lt;b&gt;&lt;i&gt;General Error Message&lt;/i&gt;&lt;/b&gt;. The 2nd will contain the &lt;b&gt;&lt;i&gt;Actual Error Message&lt;/i&gt;&lt;/b&gt; ("additional info").&lt;br /&gt;&lt;br /&gt;In this 2nd line, you need to tokenizes the message to grab the part that contains ", data xxx,". This will give you the Exact Error Message.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ldap_simple_bind: additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;, data 533,&lt;/span&gt;&lt;/b&gt; v1771&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;So we went ahead to develop our own custom Active Directory Authentication module, and we have the following mapping:&lt;br /&gt;&lt;br /&gt;public static final String ERROR_FIRSTTIME       = "773";&lt;br /&gt;public static final String ERROR_PASSWORDEXPIRED = "532";&lt;br /&gt;public static final String ERROR_ACCOUNTLOCKED   = "775";&lt;br /&gt;public static final String ERROR_ACCOUNTDISABLED = "533";&lt;br /&gt;public static final String ERROR_ACCOUNTEXPIRED  = "701";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2898860830009822922?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2898860830009822922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/12/active-directory-authentication-error.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2898860830009822922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2898860830009822922'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/12/active-directory-authentication-error.html' title='Active Directory Authentication Error via OpenSSO'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-706280094632697911</id><published>2010-12-07T08:54:00.031+08:00</published><updated>2010-12-07T08:54:00.523+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>To Configure the OpenSSO Enterprise Deployment Against Cookie Hijacking</title><content type='html'>The OpenSSO Infrastructure which I had setup has just been configured to prevent Cookie Hijacking.&lt;br /&gt;&lt;br /&gt;With this change, all my Policy Agents have to be re-configured. There's again this standard &lt;a href="http://docs.sun.com/app/docs/doc/820-3320/ghubc?l=en&amp;amp;a=view"&gt;document&lt;/a&gt; from Sun. And once again, it disappoints me.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TPxS7QCSfWI/AAAAAAAAA7g/iF9eTLY8sII/s1600/Screen+shot+2010-12-06+at+AM+11.04.20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="125" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TPxS7QCSfWI/AAAAAAAAA7g/iF9eTLY8sII/s400/Screen+shot+2010-12-06+at+AM+11.04.20.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If your Policy Agents are deployed behind a load-balancer, then&amp;nbsp;the above steps are not sufficient enough.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPWwHPO70tI/AAAAAAAAA6k/qW5PnTQwJkM/s1600/Screen+shot+2010-12-01+at+AM+10.16.19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPWwHPO70tI/AAAAAAAAA6k/qW5PnTQwJkM/s320/Screen+shot+2010-12-01+at+AM+10.16.19.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;You'll get the following errors:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS8NpnKhI/AAAAAAAAA7k/Wexit0ZNeiU/s1600/Screen+shot+2010-12-03+at+AM+11.37.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS8NpnKhI/AAAAAAAAA7k/Wexit0ZNeiU/s400/Screen+shot+2010-12-03+at+AM+11.37.18.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;ERROR: Invalid Agent: Could not get agent for the realm&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What's the complete steps to configure for Cookie&amp;nbsp;Hijacking Prevention?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Step a and b:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS8vng4II/AAAAAAAAA7o/PEXIgT6UkUw/s1600/Screen+shot+2010-12-03+at+AM+11.33.40.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS8vng4II/AAAAAAAAA7o/PEXIgT6UkUw/s320/Screen+shot+2010-12-03+at+AM+11.33.40.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Step c:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Change Agent Root URL for CDSSO from host-based FQDN to load-balancer FQDN.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TPxS97M5QiI/AAAAAAAAA7w/G3vnG5NL3c8/s1600/Screen+shot+2010-12-03+at+AM+11.22.31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TPxS97M5QiI/AAAAAAAAA7w/G3vnG5NL3c8/s400/Screen+shot+2010-12-03+at+AM+11.22.31.png" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS9FMoVwI/AAAAAAAAA7s/25H0iPr1ihQ/s1600/Screen+shot+2010-12-03+at+AM+11.23.05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPxS9FMoVwI/AAAAAAAAA7s/25H0iPr1ihQ/s400/Screen+shot+2010-12-03+at+AM+11.23.05.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-706280094632697911?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/706280094632697911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/12/to-configure-opensso-enterprise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/706280094632697911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/706280094632697911'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/12/to-configure-opensso-enterprise.html' title='To Configure the OpenSSO Enterprise Deployment Against Cookie Hijacking'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TPxS7QCSfWI/AAAAAAAAA7g/iF9eTLY8sII/s72-c/Screen+shot+2010-12-06+at+AM+11.04.20.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3701211933420166689</id><published>2010-12-04T12:07:00.000+08:00</published><updated>2010-12-04T12:07:36.360+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corporate Email Hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='Gmail'/><title type='text'>Yahoo Mail Filter is back!</title><content type='html'>I mentioned in my blog in February that I'm saying &lt;a href="http://azlabs.blogspot.com/2010/02/say-goodbye-to-yahoo-mail-for-time.html"&gt;Goodbye to Yahoo Mail&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPm98gYS1II/AAAAAAAAA7c/r1vlUPlp4_w/s1600/Screen+shot+2010-12-04+at+11.59.45+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPm98gYS1II/AAAAAAAAA7c/r1vlUPlp4_w/s400/Screen+shot+2010-12-04+at+11.59.45+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It has been a long while since I went into Yahoo Mail. I did that just.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The Filter feature is available now! &amp;nbsp;Cool!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3701211933420166689?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3701211933420166689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/12/yahoo-mail-filter-is-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3701211933420166689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3701211933420166689'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/12/yahoo-mail-filter-is-back.html' title='Yahoo Mail Filter is back!'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TPm98gYS1II/AAAAAAAAA7c/r1vlUPlp4_w/s72-c/Screen+shot+2010-12-04+at+11.59.45+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6039635341919446554</id><published>2010-12-01T17:26:00.001+08:00</published><updated>2010-12-01T17:30:21.039+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Backup OpenSSO Configuration Data in Embedded OpenDS</title><content type='html'>OpenSSO 8.0 U2 comes bundled with a super old embedded OpenDS. (Version 1.0.2)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TPYPYyaDtuI/AAAAAAAAA7I/24e_yruP8Vc/s1600/Screen+shot+2010-12-01+at+PM+05.03.04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TPYPYyaDtuI/AAAAAAAAA7I/24e_yruP8Vc/s1600/Screen+shot+2010-12-01+at+PM+05.03.04.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The current version of OpenDS is 2.2.&lt;br /&gt;&lt;br /&gt;Anyway, that aside, the embedded OpenDS comes with a number of sub-folders left empty.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPYQHWsWU6I/AAAAAAAAA7M/qSxHOFqFExI/s1600/Screen+shot+2010-12-01+at+PM+05.06.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="64" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPYQHWsWU6I/AAAAAAAAA7M/qSxHOFqFExI/s320/Screen+shot+2010-12-01+at+PM+05.06.14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;E.g. bin, classes, lib&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Without the executables in &lt;i&gt;&lt;b&gt;bin&lt;/b&gt; &lt;/i&gt;directory, there is no way to backup the configuration data which are all stored in the OpenDS.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;What's the workaround?&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. Go to the j2ee-modules in GlassFish application deployment directory&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&amp;nbsp; .../j2ee-modules/opensso/WEB-INF/lib&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. Copy OpenDS.jar and je.jar to &lt;b&gt;&lt;i&gt;lib&lt;/i&gt;&lt;/b&gt; directory in OpenDS&lt;/div&gt;&lt;br /&gt;3. Go to &lt;a href="https://www.opends.org/1.0"&gt;OpenDS 1.0 website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPYVe4Gnu8I/AAAAAAAAA7Y/pXUtK56w6-g/s1600/Screen+shot+2010-12-01+at+PM+05.18.49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPYVe4Gnu8I/AAAAAAAAA7Y/pXUtK56w6-g/s1600/Screen+shot+2010-12-01+at+PM+05.18.49.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4. Download the zip file (Note: Do not download the latest OpenDS 2.2 zip file. It will bomb.)&lt;br /&gt;&lt;br /&gt;5. Upload _mixed-script.sh, _server-script.sh, _client-script.sh and _script-util.sh to&amp;nbsp;&lt;b&gt;&lt;i&gt;lib&lt;/i&gt;&lt;/b&gt;&amp;nbsp;directory in OpenDS&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPYT5f-fZdI/AAAAAAAAA7Q/-BRoRjvUm64/s1600/Screen+shot+2010-12-01+at+PM+05.21.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="75" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPYT5f-fZdI/AAAAAAAAA7Q/-BRoRjvUm64/s400/Screen+shot+2010-12-01+at+PM+05.21.46.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;6. Upload to executables to&amp;nbsp;&lt;b&gt;&lt;i&gt;bin&lt;/i&gt;&lt;/b&gt;&amp;nbsp;directory in OpenDS&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TPYUayeCHiI/AAAAAAAAA7U/MsFoLlREeTk/s1600/Screen+shot+2010-12-01+at+PM+05.24.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TPYUayeCHiI/AAAAAAAAA7U/MsFoLlREeTk/s400/Screen+shot+2010-12-01+at+PM+05.24.14.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For me, I'm only interested in backup, export-ldif and status since my environment is going LIVE soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6039635341919446554?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6039635341919446554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/12/backup-opensso-configuration-data-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6039635341919446554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6039635341919446554'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/12/backup-opensso-configuration-data-in.html' title='Backup OpenSSO Configuration Data in Embedded OpenDS'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TPYPYyaDtuI/AAAAAAAAA7I/24e_yruP8Vc/s72-c/Screen+shot+2010-12-01+at+PM+05.03.04.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1212483194928237156</id><published>2010-12-01T11:01:00.002+08:00</published><updated>2010-12-01T11:04:55.268+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Load Balancer in Front of the Web Agent</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I continue to play with OpenSSO Policy Agent 3. This time round, I have 2 x Policy Agents deployed behind a load balancer. The Sun Web Server 7 acts as a Reverse Proxy to the backend GlassFish Application Server 2.1 running Sun Identity Manager.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPWwHPO70tI/AAAAAAAAA6k/qW5PnTQwJkM/s1600/Screen+shot+2010-12-01+at+AM+10.16.19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPWwHPO70tI/AAAAAAAAA6k/qW5PnTQwJkM/s320/Screen+shot+2010-12-01+at+AM+10.16.19.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Naturally, I'll follow the steps from Sun OpenSSO Enterprise Policy Agent 3.0 User's Guide for Web Agents. &lt;i&gt;(Read &lt;/i&gt;&lt;a href="http://docs.sun.com/app/docs/doc/820-5816/gbdxg?l=en&amp;amp;a=view"&gt;&lt;i&gt;here&lt;/i&gt;&lt;/a&gt;&lt;i&gt;)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Oh mine!&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The instruction was wrong and I spent a long time debugging the configuration steps. In the end, I had to read the source code for the Policy Agent for Sun Web Server 7.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The source was in C and C++. I'm never a C person. :) Another struggle.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The instruction to configure FQDN is OK.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW5HvMHqlI/AAAAAAAAA7A/pszlTK730T4/s1600/Screen+shot+2010-12-01+at+AM+10.27.19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW5HvMHqlI/AAAAAAAAA7A/pszlTK730T4/s320/Screen+shot+2010-12-01+at+AM+10.27.19.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Problems come when you start to read further down ...&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW08sUSabI/AAAAAAAAA6o/_Rnsr-nm_K0/s1600/Screen+shot+2010-12-01+at+AM+10.30.58.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW08sUSabI/AAAAAAAAA6o/_Rnsr-nm_K0/s1600/Screen+shot+2010-12-01+at+AM+10.30.58.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;If you map the above instruction to the UI in OpenSSO console (see below), you will never be able to find a way to configure the last property.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW2jl7_FVI/AAAAAAAAA68/Dp2PYHGPi5E/s1600/Screen+shot+2010-12-01+at+AM+10.27.59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TPW2jl7_FVI/AAAAAAAAA68/Dp2PYHGPi5E/s400/Screen+shot+2010-12-01+at+AM+10.27.59.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;In fact, the instruction should simply be &lt;i&gt;&lt;b&gt;Enabled&lt;/b&gt;&lt;/i&gt; or &lt;i&gt;&lt;b&gt;Not enabled&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;The last property is supposed to be "Enabled".&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;That's not all. There is another place where you need to make slight change:&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TPW53QhTTXI/AAAAAAAAA7E/fYOYd8Tiu1E/s1600/Screen+shot+2010-12-01+at+AM+10.29.01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TPW53QhTTXI/AAAAAAAAA7E/fYOYd8Tiu1E/s320/Screen+shot+2010-12-01+at+AM+10.29.01.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The Agent Deployment URI Prefix should change from &lt;i&gt;"Host-url/amagent"&lt;/i&gt; to&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;i&gt;"LB-url/amagent"&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1212483194928237156?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1212483194928237156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/12/load-balancer-in-front-of-web-agent.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1212483194928237156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1212483194928237156'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/12/load-balancer-in-front-of-web-agent.html' title='Load Balancer in Front of the Web Agent'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TPWwHPO70tI/AAAAAAAAA6k/qW5PnTQwJkM/s72-c/Screen+shot+2010-12-01+at+AM+10.16.19.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-671162321464758663</id><published>2010-11-28T16:49:00.001+08:00</published><updated>2010-11-28T16:49:55.800+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Confusing Oracle/Sun Solaris OS Versioning</title><content type='html'>I'm always confused when I want to find out the exact release of the Solaris OS which I am working on.&lt;br /&gt;If you do a "$ more /etc/release", you get something like below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TPIWaWznjVI/AAAAAAAAA6g/AhJuBXbLw9k/s1600/Screen+shot+2010-11-28+at+PM+04.43.57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="45" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TPIWaWznjVI/AAAAAAAAA6g/AhJuBXbLw9k/s400/Screen+shot+2010-11-28+at+PM+04.43.57.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It's still very hard to relate &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;9/10&lt;/span&gt;&lt;/b&gt; belongs to which release. I can relate more to U1, U2, etc... It's easier to track, at least for me.&lt;br /&gt;&lt;br /&gt;Luckily, Wikipedia tracks it &lt;a href="http://en.wikipedia.org/wiki/Solaris_(operating_system)"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Solaris 10 1/06 ("U1")&lt;/li&gt;&lt;li&gt;Solaris 10 6/06 ("U2")&lt;/li&gt;&lt;li&gt;Solaris 10 11/06 ("U3")&lt;/li&gt;&lt;li&gt;Solaris 10 8/07 ("U4")&lt;/li&gt;&lt;li&gt;Solaris 10 5/08 ("U5")&lt;/li&gt;&lt;li&gt;Solaris 10 10/08 ("U6")&lt;/li&gt;&lt;li&gt;Solaris 10 5/09 ("U7")&lt;/li&gt;&lt;li&gt;Solaris 10 10/09 ("U8")&lt;/li&gt;&lt;li&gt;Solaris 10 9/10 ("U9")&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-671162321464758663?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/671162321464758663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/confusing-oraclesun-solaris-os.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/671162321464758663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/671162321464758663'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/confusing-oraclesun-solaris-os.html' title='Confusing Oracle/Sun Solaris OS Versioning'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TPIWaWznjVI/AAAAAAAAA6g/AhJuBXbLw9k/s72-c/Screen+shot+2010-11-28+at+PM+04.43.57.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5867297112310703967</id><published>2010-11-26T11:29:00.000+08:00</published><updated>2010-11-26T11:29:54.999+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - Installing Policy Agent on Oracle/Sun Web Server 7</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I'm deploying a large-scale Single Sign-On infrastructure using OpenSSO for the local education ministry.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There is a Sun Web Server 7 performing a Reverse Proxy to a backend application, and we intend to deploy the OpenSSO Policy Agent on the web server.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TO8mZK2hFaI/AAAAAAAAA6c/n19PisUZKnc/s1600/Screen+shot+2010-11-26+at+AM+11.08.26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="137" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TO8mZK2hFaI/AAAAAAAAA6c/n19PisUZKnc/s400/Screen+shot+2010-11-26+at+AM+11.08.26.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There is a certain sequence to follow to ensure the Policy Agent works:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. Install Sun Web Server 7&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. Install OpenSSO Policy Agent for Sun Web Server 7&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. Configure Reverse Policy to backend application&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;If you swap 2 with 3, the Policy Agent will not be able to intercept user access via the reverse proxy, thus render the Policy Agent useless.&lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Take a look at the object configuration file in the Web Server config directory.&lt;br /&gt;&lt;i&gt;(Note: Not obj.conf, but &lt;hostname&gt;-obj.conf)&lt;/hostname&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TO8mRzNZ0gI/AAAAAAAAA6Y/BRtHIH8QV4M/s1600/Screen+shot+2010-11-26+at+AM+11.04.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;img border="0" height="110" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TO8mRzNZ0gI/AAAAAAAAA6Y/BRtHIH8QV4M/s400/Screen+shot+2010-11-26+at+AM+11.04.35.png" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The &lt;b&gt;&lt;i&gt;/UpdateAgentCacheServlet&lt;/i&gt;&lt;/b&gt; and &lt;b&gt;&lt;i&gt;/dummypost/sunpostpreserve&lt;/i&gt;&lt;/b&gt; must precede &lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;reverse-proxy-/&lt;/span&gt;&lt;/b&gt;.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;If you swap 2 with 3,&amp;nbsp;you'll find that&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;reverse-proxy-/ &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;precedes&amp;nbsp;&lt;b&gt;&lt;i&gt;/UpdateAgentCacheServlet&lt;/i&gt;&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;&lt;i&gt;/dummypost/sunpostpreserve&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you to manually swap the sequence to make Policy Agent to work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5867297112310703967?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5867297112310703967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-installing-policy-agent-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5867297112310703967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5867297112310703967'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-installing-policy-agent-on.html' title='OpenSSO - Installing Policy Agent on Oracle/Sun Web Server 7'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TO8mZK2hFaI/AAAAAAAAA6c/n19PisUZKnc/s72-c/Screen+shot+2010-11-26+at+AM+11.08.26.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4732309733497901983</id><published>2010-11-22T17:18:00.001+08:00</published><updated>2010-11-22T17:20:27.915+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - Weird Policy Agent Naming Convention</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have been playing around with OpenSSO Policy Agent for a few weeks - installing and uninstalling many times.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TOoy_eQCfHI/AAAAAAAAA6U/67yA5zcOTdg/s1600/Screen+shot+2010-11-22+at+PM+05.07.48.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TOoy_eQCfHI/AAAAAAAAA6U/67yA5zcOTdg/s1600/Screen+shot+2010-11-22+at+PM+05.07.48.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Policy Agent installer uses the convention &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&lt;b&gt;Agent_nnn&lt;/b&gt;&lt;/i&gt;&lt;/span&gt; as the&amp;nbsp;Agent instance name. The 1st instance will be named Agent_001; 2nd instance will be named Agent_002.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The weird behavior happens when you uninstall the 2nd instance and then you install again. Logically, one would want this re-installed instance to be named as Agent_002 again. (since this is really the 2nd instance on the same server)&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Logical, no?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Sadly enough, the Policy Agent installer will skip Agent_002. It will rename this new instance as Agent_003, which is not acceptable to me!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What's the trick then?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Look for this hidden file in /sjsws_agent/data/&lt;span class="Apple-style-span" style="color: red;"&gt;.amAgentLookup&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Before uninstall,&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# Product Instances Translation Lookup File&lt;br /&gt;Product_Instance_Count= 2&lt;br /&gt;/opt/webserver7/https-ams.sso.mo.sg-1/config|= Agent_001&lt;br /&gt;/opt/webserver7/https-ams.sso.mo.sg-2/config|= Agent_002&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;After uninstall,&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# Product Instances Translation Lookup File&lt;br /&gt;Product_Instance_Count= 2&lt;br /&gt;/opt/webserver7/https-ams.sso.mo.sg-1/config|= Agent_001&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Policy Agent installer program was able to remove the line ending with "Agent_002", but was just to lazy to decrement the Product_Instance_Count from 2 to 1. I feel like kicking the developer who wrote this piece of code.&lt;br /&gt;&lt;br /&gt;Nevertheless, to resolve the issue, manually set the value to 1 prior to re-install again.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4732309733497901983?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4732309733497901983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-weird-policy-agent-naming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4732309733497901983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4732309733497901983'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-weird-policy-agent-naming.html' title='OpenSSO - Weird Policy Agent Naming Convention'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TOoy_eQCfHI/AAAAAAAAA6U/67yA5zcOTdg/s72-c/Screen+shot+2010-11-22+at+PM+05.07.48.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1290501350188756179</id><published>2010-11-14T12:49:00.000+08:00</published><updated>2010-11-14T12:49:58.425+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><title type='text'>OpenAM from ForgeRock</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have been wanting to install OpenAM for a while, but didn't have the time to do so until now.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Nothing much have changed except the color scheme. It's now orange, instead of the blue which we are used to for a while. :)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A slight difference in one of the OpenAM Configurator steps - User Data Store Settings.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There are now 6 types of supportable User Data Store Types to choose from.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TN9pGgyYglI/AAAAAAAAA6I/fFbPCTxp1EI/s1600/Screen+shot+2010-11-14+at+PM+12.36.02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TN9pGgyYglI/AAAAAAAAA6I/fFbPCTxp1EI/s320/Screen+shot+2010-11-14+at+PM+12.36.02.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Once configuration is done, we are redirected to the Login Page as usual.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TN9pJ2ZjHJI/AAAAAAAAA6Q/CZl6IV0uyg0/s1600/Screen+shot+2010-11-14+at+PM+12.38.34.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TN9pJ2ZjHJI/AAAAAAAAA6Q/CZl6IV0uyg0/s320/Screen+shot+2010-11-14+at+PM+12.38.34.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It's a nicer page! Welcome to OpenAM!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1290501350188756179?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1290501350188756179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/openam-from-forgerock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1290501350188756179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1290501350188756179'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/openam-from-forgerock.html' title='OpenAM from ForgeRock'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TN9pGgyYglI/AAAAAAAAA6I/fFbPCTxp1EI/s72-c/Screen+shot+2010-11-14+at+PM+12.36.02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4482138243012809393</id><published>2010-11-12T20:18:00.001+08:00</published><updated>2010-11-12T20:19:16.132+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL Latest Price List</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Oracle is giving you more support options, thus they need to collect more $ from you.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It's for your own good, my friend.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TN0wPv4u4SI/AAAAAAAAA58/BVEBkTuJ_3Q/s1600/Screen+shot+2010-11-12+at+8.15.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TN0wPv4u4SI/AAAAAAAAA58/BVEBkTuJ_3Q/s400/Screen+shot+2010-11-12+at+8.15.57+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Oracle knows better than you.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4482138243012809393?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4482138243012809393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/mysql-latest-price-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4482138243012809393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4482138243012809393'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/mysql-latest-price-list.html' title='MySQL Latest Price List'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TN0wPv4u4SI/AAAAAAAAA58/BVEBkTuJ_3Q/s72-c/Screen+shot+2010-11-12+at+8.15.57+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6128552539955100013</id><published>2010-11-11T14:06:00.001+08:00</published><updated>2010-11-11T14:08:23.221+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Algorithm DES/ECB is not available from provider Cryptix</title><content type='html'>I was tasked to port a very old Web Services application to Sun Glassfish Enterprise Server 2.1.1. This application uses a cryptography library from &lt;a href="http://www.cryptix.org/"&gt;Cryptix&lt;/a&gt;. &lt;i&gt;(Cryptix has been dead since 2005.)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TNuIQuyUsDI/AAAAAAAAA54/7-2QHVALXO0/s1600/Screen+shot+2010-11-11+at+PM+02.07.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TNuIQuyUsDI/AAAAAAAAA54/7-2QHVALXO0/s1600/Screen+shot+2010-11-11+at+PM+02.07.14.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TNuEkr8g8rI/AAAAAAAAA50/QnAqSBv6Xe4/s1600/Screen+shot+2010-11-11+at+PM+01.51.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TNuEkr8g8rI/AAAAAAAAA50/QnAqSBv6Xe4/s1600/Screen+shot+2010-11-11+at+PM+01.51.50.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;On my development environment on MacBook, everything runs fine on Glassfish with JDK 1.6.0_16. However, when I ported to the production environment on Solaris 10, I kept getting the following error:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;java.security.NoSuchAlgorithmException: &lt;span class="Apple-style-span" style="color: red;"&gt;algorithm DES/ECB is not available from provider Cryptix&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at xjava.security.IJCE.getClassCandidate(IJCE.java:457)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at xjava.security.IJCE.getImplementationClass(IJCE.java:410)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at xjava.security.IJCE.getImplementation(IJCE.java:367)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at xjava.security.Cipher.getInstance(Cipher.java:489)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at xjava.security.Cipher.getInstance(Cipher.java:452)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at com.sun.moe.security.DESEncryptor.decrypt(DESEncryptor.java:133)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;at com.sun.moe.login.AppLogin.main(AppLogin.java:80)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Very strange! After a long debugging session, I found the issue was with the &lt;b&gt;&lt;i&gt;JDK 1.6.x version&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I downgraded the JDK to &lt;b&gt;&lt;i&gt;1.5.0_20&lt;/i&gt;&lt;/b&gt; that shipped default with Solaris 10. It works!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I believe there must be some "tightening" done in this file in JRE, but I just cannot figure how to resolve it.&lt;br /&gt;&lt;br /&gt;-bash-3.00$ cat /jdk/jdk1.6.0_16/jre/lib/security/&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;sunpkcs11-solaris.cfg &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# Configuration file to allow the SunPKCS11 provider to utilize&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# the Solaris Cryptographic Framework, if it is available&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;name = Solaris&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;description = SunPKCS11 accessing Solaris Cryptographic Framework&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;library = /usr/lib/$ISA/libpkcs11.so&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;handleStartupErrors = ignoreAll&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;attributes = compatibility&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;disabledMechanisms = {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_MD2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_MD5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA_1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA256&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA384&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA512&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_DSA_KEY_PAIR_GEN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# KEY_AND_MAC_DERIVE disabled due to Solaris bug 6306708&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SSL3_KEY_AND_MAC_DERIVE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_TLS_KEY_AND_MAC_DERIVE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# the following mechanisms are disabled due to performance issues (Solaris bug 6337157)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_DSA_SHA1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_MD5_RSA_PKCS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA1_RSA_PKCS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA256_RSA_PKCS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA384_RSA_PKCS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_SHA512_RSA_PKCS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# the following mechanisms are disabled to ensure backward compatibility (Solaris bug 6545046)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_DES_CBC_PAD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_DES3_CBC_PAD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CKM_AES_CBC_PAD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyone has an idea?&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6128552539955100013?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6128552539955100013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/algorithm-desecb-is-not-available-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6128552539955100013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6128552539955100013'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/algorithm-desecb-is-not-available-from.html' title='Algorithm DES/ECB is not available from provider Cryptix'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TNuIQuyUsDI/AAAAAAAAA54/7-2QHVALXO0/s72-c/Screen+shot+2010-11-11+at+PM+02.07.14.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3079376258065546820</id><published>2010-11-10T17:48:00.000+08:00</published><updated>2010-11-10T17:48:56.570+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - High-Available Data Stores</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In a highly available setup, the OpenSSO Enterprise Server should connect to at least a pair of Data Stores.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TNpmbLziYvI/AAAAAAAAA5w/9zfmkS2Oqxk/s1600/Screen+shot+2010-11-10+at+PM+05.27.43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TNpmbLziYvI/AAAAAAAAA5w/9zfmkS2Oqxk/s320/Screen+shot+2010-11-10+at+PM+05.27.43.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;When a failover kicks in, the following will be captured in IdRepo log file:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;IdCachedServicesImpl.getAttributes(): null found all attributes in Cache.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;LDAPv3EventService:11/10/2010 02:50:10:642 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;WARNING: LDAPv3EventService.run() LDAPException received: randomID=1490605490&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;com.sun.identity.shared.ldap.LDAPException: Server or network error (81)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;at com.sun.identity.shared.ldap.LDAPConnThread.networkError(LDAPConnThread.java:782)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;at com.sun.identity.shared.ldap.LDAPConnThread.run(LDAPConnThread.java:567)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;at java.lang.Thread.run(Thread.java:619)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;LDAPv3EventService:11/10/2010 02:50:10:651 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;LDAPv3EventService.dispatchAllEntriesChangedEvent()  psIdKey=ds2.sso.mo.sg:1389 ds1.sso.mo.sg:1389o=Edu,c=SGo=Edu,c=SG(objectclass=*)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;LDAPv3Repo:11/10/2010 02:50:10:651 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;LDAPv3Repo.objectChanged: dn=null; changeType4; psIdKey=ds2.sso.mo.sg:1389 ds1.sso.mo.sg:1389o=Edu,c=SGo=Edu,c=SG(objectclass=*); allObjChanged=true; clearCache=true&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;idrepoListener:11/10/2010 02:50:10:652 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;**********************************************&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;idrepoListener:11/10/2010 02:50:10:652 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;IdRepoListener: allObjectsChanged Called!&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;amIdmJAXRPCServer:11/10/2010 02:50:10:679 PM SGT: Thread[LDAPv3EventService,5,main]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;**********************************************&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;The failover works! Cool!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;However, when the primary Data Store is up again, the OpenSSO Enterprise Server does not switch back from the secondary Data Store.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3079376258065546820?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3079376258065546820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-high-available-data-stores.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3079376258065546820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3079376258065546820'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-high-available-data-stores.html' title='OpenSSO - High-Available Data Stores'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TNpmbLziYvI/AAAAAAAAA5w/9zfmkS2Oqxk/s72-c/Screen+shot+2010-11-10+at+PM+05.27.43.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2653855766230834562</id><published>2010-11-09T16:50:00.000+08:00</published><updated>2010-11-09T16:50:05.176+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - Policy Agent Issue with Time Sync</title><content type='html'>I was debugging a OpenSSO Policy Agent issue for a customer. He has deployed the Policy Agent for Sun Java Systems Web Server 7.&lt;br /&gt;&lt;br /&gt;The application which resides on the Web Server 7 gets protected Policy Agent and redirected to the OpenSSO Login Page. However, when he keyed in valid username and password, the browser kept hanging on the OpenSSO Login Page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TNkGWYIBv_I/AAAAAAAAA5o/KUmAV_y-ys8/s1600/opensso-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TNkGWYIBv_I/AAAAAAAAA5o/KUmAV_y-ys8/s1600/opensso-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;From the Policy log in OpenSSO Enterprise Server, I noticed that there was lot of communications between the agent and the server (even though the browser looks "hang" on the Login Page). The following segment keeps repeating.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TNkH7--YKsI/AAAAAAAAA5s/xZwsjlNFrCM/s1600/Screen+shot+2010-11-09+at+PM+04.35.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TNkH7--YKsI/AAAAAAAAA5s/xZwsjlNFrCM/s400/Screen+shot+2010-11-09+at+PM+04.35.00.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From the amAgent log, I noticed the following:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;2010-11-09 14:41:47.618 Warning 25919:815c858 ServiceEngine: Service::getPolicyResult():Result size is 0,tree not present for http://ok.sso.mo.sg:8080/index.html&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;2010-11-09 14:41:47.618MaxDebug 25919:815c858 AM_POLICY_SERVICE: am_policy_compare_urls(): compare usePatterns=true returned 0&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;2010-11-09 14:41:47.618MaxDebug 25919:815c858 AM_POLICY_SERVICE: am_policy_compare_urls(): compare usePatterns=true returned 4&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;2010-11-09 14:41:47.618   Debug 25919:815c858 all: Policy time stamp for resource http://ok.sso.mo.sg:8080/* is (1289284876056000)2010-11-09 14:41:16.056.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;2010-11-09 14:41:47.618    Info 25919:815c858 all: &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;Policy node http://ok.sso.mo.sg:8080/* &lt;/i&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;marked stale due to time out.&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Something is fishy. This has something to do with time sync.&lt;br /&gt;&lt;br /&gt;I checked and confirmed that the 2 servers (OpenSSO Enterprise Server and the Web Server) were in different time zone. I tweaked with NTP and made them sync with the same clock.&lt;br /&gt;&lt;br /&gt;Re-run and the policy agent works like a charm!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2653855766230834562?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2653855766230834562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-policy-agent-issue-with-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2653855766230834562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2653855766230834562'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/11/opensso-policy-agent-issue-with-time.html' title='OpenSSO - Policy Agent Issue with Time Sync'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TNkGWYIBv_I/AAAAAAAAA5o/KUmAV_y-ys8/s72-c/opensso-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-9185260418121739978</id><published>2010-10-30T10:22:00.001+08:00</published><updated>2010-10-30T10:24:05.693+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Sun Access Manager 7.1 - Password Retries Exceeded Issue</title><content type='html'>I have a customer in Thailand asking me for help with regard to a weird error message when he tries to login after his password retries have exceeded.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;He was warned of account lockout prior to his max password retries count. This is what he expected. &lt;i&gt;Good.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TMuAHzjY90I/AAAAAAAAA5k/nVbDnDHNk0k/s1600/Screen+shot+2010-10-30+at+10.16.13+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TMuAHzjY90I/AAAAAAAAA5k/nVbDnDHNk0k/s320/Screen+shot+2010-10-30+at+10.16.13+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;However, "Authentication failed" error message is shown when he really exceeded his max password retries count.&amp;nbsp;He was expecting "Password retry limit exceeded". &lt;i&gt;No Good.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TMt_1Q3qccI/AAAAAAAAA5g/Pa0D6mZWynE/s1600/Screen+shot+2010-10-30+at+10.15.23+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TMt_1Q3qccI/AAAAAAAAA5g/Pa0D6mZWynE/s320/Screen+shot+2010-10-30+at+10.15.23+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I did a search in&amp;nbsp;&lt;b&gt;&lt;i&gt;amAuthLDAP.properties&lt;/i&gt;&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#ExceedRetryLimit=Exceed password retry limit. Please try later.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ExceedRetryLimit=Authentication failed.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That explains why. This is more for security/auditing purpose. These days, auditors advise customers not to reveal too much to end-users when they encounter login failure.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-9185260418121739978?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/9185260418121739978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/10/sun-access-manager-71-password-retries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9185260418121739978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/9185260418121739978'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/10/sun-access-manager-71-password-retries.html' title='Sun Access Manager 7.1 - Password Retries Exceeded Issue'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TMuAHzjY90I/AAAAAAAAA5k/nVbDnDHNk0k/s72-c/Screen+shot+2010-10-30+at+10.16.13+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3514354170575169916</id><published>2010-10-28T11:11:00.002+08:00</published><updated>2010-10-30T10:24:48.417+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - WebtopNaming Error</title><content type='html'>I was trying to configure a Site for my 2 OpenSSO Enterprise Servers and I hit the famous WebtopNaming error as shown below:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Servle&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;t /opensso threw load() exception&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;java.lang.StackOverflowError&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;:&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.am.util.SystemProperties.get(SystemProperties.java:252)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.am.util.SystemProperties.get(SystemProperties.java:329)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:620)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:594)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.updatePlatformServerIDs(WebtopNaming.java:1186)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:1111)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:995)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:658)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:594)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There could be many scenarios that can cause this problem. Mine is kind of stupid today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TMjpNOR6SxI/AAAAAAAAA5c/BY6449zGDeo/s1600/Screen+shot+2010-10-28+at+AM+10.50.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TMjpNOR6SxI/AAAAAAAAA5c/BY6449zGDeo/s400/Screen+shot+2010-10-28+at+AM+10.50.54.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I was careless in appending an additional "/" to "/opensso". Be careful!&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3514354170575169916?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3514354170575169916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/10/opensso-webtopnaming-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3514354170575169916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3514354170575169916'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/10/opensso-webtopnaming-error.html' title='OpenSSO - WebtopNaming Error'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TMjpNOR6SxI/AAAAAAAAA5c/BY6449zGDeo/s72-c/Screen+shot+2010-10-28+at+AM+10.50.54.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8424035208112078685</id><published>2010-10-25T18:51:00.000+08:00</published><updated>2010-10-25T18:51:26.173+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO - Manual configuration</title><content type='html'>I was trying to configure OpenSSO Enterprise Server manually without using the GUI Configurator.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TMVgX3UUiQI/AAAAAAAAA5Y/dYucCdgcL4I/s1600/Screen+shot+2010-10-25+at+PM+04.02.57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TMVgX3UUiQI/AAAAAAAAA5Y/dYucCdgcL4I/s400/Screen+shot+2010-10-25+at+PM+04.02.57.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following error was encountered:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-bash-3.00$ java -jar /dist/osso/tools/config/configurator.jar -f /dist/osso/tools/config/osso1-config&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Not Found&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Configuration failed!&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What an unfriendly error message! What is "Not Found"?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was only after a while then I realized I have forgotten to deploy the opensso.war into my Glassfish container. How careless I was!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here we go again:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;-bash-3.00$ opt/gf211/bin/asadmin deploy --user admin --port 7878 --secure /dist/osso/opensso.war &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Command deploy executed successfully.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;-bash-3.00$ java -jar /dist/osso/tools/config/configurator.jar -f /dist/osso/tools/config/osso1-config &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Checking configuration directory /sso/var/opensso....Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Installing OpenSSO configuration store...Success RSA/ECB/OAEPWithSHA1AndMGF1Padding.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Installing OpenSSO configuration store in /sso/var/opensso/opends...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Creating OpenSSO suffix...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Tag swapping schema files....Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Loading Schema am_sm_ds_schema.ldif...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Loading Schema am_remote_opends_schema.ldif...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Loading Schema fam_sds_schema.ldif...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Reinitializing system properties....Done&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Registering service amEntrySpecific.xml...Success.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;:&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;:&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Configuring system....Done&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Configuring server instance....Done&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Creating Web Service Security Agents....Done&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Setting up registration files....Done&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Configuration complete!&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nevertheless, I still think that we can do better with a friendlier error message.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8424035208112078685?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8424035208112078685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/10/opensso-manual-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8424035208112078685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8424035208112078685'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/10/opensso-manual-configuration.html' title='OpenSSO - Manual configuration'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TMVgX3UUiQI/AAAAAAAAA5Y/dYucCdgcL4I/s72-c/Screen+shot+2010-10-25+at+PM+04.02.57.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3324106079637529778</id><published>2010-10-18T22:42:00.001+08:00</published><updated>2010-10-18T22:42:46.508+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>How to import SSL certificates into JVM trust store?</title><content type='html'>I was trying to set up OpenSSO Distributed Authentication UI (DAUI) server on Sun Web Server 7 (aka Oracle iPlanet Server) to communicate with my backend OpenSSO Enterprise Server. The OpenSSO Enterprise Server is SSL-enabled for security reason.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TLxbVOLG3WI/AAAAAAAAA5U/3_stsaDrojM/s1600/Screen+shot+2010-10-18+at+PM+10.35.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TLxbVOLG3WI/AAAAAAAAA5U/3_stsaDrojM/s1600/Screen+shot+2010-10-18+at+PM+10.35.39.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In our development environment, we install self-signed certificate onto the Glassfish Application Server that hosts the OpenSSO Enterprise Server.&lt;br /&gt;&lt;br /&gt;In order for DAUI to communicate securely with the OpenSSO Enterprise Server, we need to import the self-signed CA certificate into the Sun Web Server JVM.&lt;br /&gt;&lt;br /&gt;The task can be daunting for people who do not play with SSL day-in-day-out.&lt;br /&gt;&lt;br /&gt;Luckily, I found a very useful &lt;a href="http://blogs.sun.com/andreas/entry/no_more_unable_to_find"&gt;blog&lt;/a&gt;. Amazing! Wrote in 2006, still works like a charm in 2010!&lt;br /&gt;&lt;br /&gt;Thank you, Andreas!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3324106079637529778?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3324106079637529778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/10/how-to-import-ssl-certificates-into-jvm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3324106079637529778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3324106079637529778'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/10/how-to-import-ssl-certificates-into-jvm.html' title='How to import SSL certificates into JVM trust store?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TLxbVOLG3WI/AAAAAAAAA5U/3_stsaDrojM/s72-c/Screen+shot+2010-10-18+at+PM+10.35.39.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-216043915822527319</id><published>2010-10-11T21:51:00.000+08:00</published><updated>2010-10-11T21:51:31.383+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile Office'/><title type='text'>Alternative SyncML Client</title><content type='html'>Besides Synchronica and NotifyLink, there is now another SyncML client alternative from &lt;a href="http://www.synthesis.ch/dl_client.php?lang=e&amp;amp;lay=desk"&gt;Synthesis AG&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TLMVJFPnExI/AAAAAAAAA5Q/GmrpTbWZ4uU/s1600/Screen+shot+2010-10-11+at+9.45.50+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TLMVJFPnExI/AAAAAAAAA5Q/GmrpTbWZ4uU/s1600/Screen+shot+2010-10-11+at+9.45.50+PM.png" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Synthesis SyncML Clients for mobile devices (PDA) bring SyncML compatibility to widespread mobile OS platforms like iOS (iPhone, iPad, iPod touch), Android, PalmOS and Windows Mobile. &lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;This allows mobile over-the-air (OTA) synchronisation with any compliant SyncML server (such as GooSync.com, SyncWise, Oracle Calendar and Beehive, eGroupware, Horde, WinFonie, SyncEvolution, MDaemon, OpenXchange, DeskNow, ScheduleWorld.com, O-Sync and many many more) &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It offers free evaluation copy. I have not personally tried it yet, but will do so when I have the bandwidth.&lt;br /&gt;Anyone has any review on this product? I would like to hear from you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-216043915822527319?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/216043915822527319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/10/alternative-syncml-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/216043915822527319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/216043915822527319'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/10/alternative-syncml-client.html' title='Alternative SyncML Client'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TLMVJFPnExI/AAAAAAAAA5Q/GmrpTbWZ4uU/s72-c/Screen+shot+2010-10-11+at+9.45.50+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4195679330729860524</id><published>2010-09-22T19:34:00.000+08:00</published><updated>2010-09-22T19:34:59.416+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gmail'/><title type='text'>Gmail Priority Inbox</title><content type='html'>When Gmail launched Priority Inbox, I was initially not interested. That's why I did not enable the feature until today.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TJnoemSSWyI/AAAAAAAAA44/aVmgxpO4tGg/s1600/Screen+shot+2010-09-22+at+PM+07.27.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TJnoemSSWyI/AAAAAAAAA44/aVmgxpO4tGg/s320/Screen+shot+2010-09-22+at+PM+07.27.14.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To know more about how Priority Inbox works, read &lt;a href="http://mail.google.com/mail/help/priority-inbox.html"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I just enabled it while having a lengthly meeting in a customer's site. I'm just impressed!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TJnpOYvcyZI/AAAAAAAAA5I/OHybm8yZ5sc/s1600/Screen+shot+2010-09-22+at+PM+07.19.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="109" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TJnpOYvcyZI/AAAAAAAAA5I/OHybm8yZ5sc/s320/Screen+shot+2010-09-22+at+PM+07.19.14.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;With Priority Inbox, there is this little section right at the top of your inbox (highlighted in RED). To me, it looks like a simple Executive Summary. So simple, so convenient.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4195679330729860524?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4195679330729860524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/09/gmail-priority-inbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4195679330729860524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4195679330729860524'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/09/gmail-priority-inbox.html' title='Gmail Priority Inbox'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TJnoemSSWyI/AAAAAAAAA44/aVmgxpO4tGg/s72-c/Screen+shot+2010-09-22+at+PM+07.27.14.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1380616374277043476</id><published>2010-09-15T13:51:00.001+08:00</published><updated>2010-09-15T13:52:08.509+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Calendar Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Messaging Server'/><title type='text'>Blackberry Email &amp; Calendar Sync with Sun Communications Suite</title><content type='html'>I just finished installing Sun Calendar Server to a customer's existing Sun Messaging Server infrastructure over the weekend in the Philippines.&lt;br /&gt;&lt;br /&gt;Some of their directors use Blackberry. With the newly installed Calendar Server, they hope to sync their Blackberry devices.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TJBd1xb8FxI/AAAAAAAAA4o/yOnoxBDmjZ0/s1600/Screen+shot+2010-09-15+at+1.45.55+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TJBd1xb8FxI/AAAAAAAAA4o/yOnoxBDmjZ0/s320/Screen+shot+2010-09-15+at+1.45.55+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I told them there are 2 approaches.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Approach 1: Blackberry sync with Outlook via USB&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;a. Install Sun Java System Connector for Microsoft Outlook&lt;br /&gt;b. Sync Mail &amp;amp; Calendar from Sun Comms Suite 6u2 (Mail &amp;amp; Calendar) with Outlook&lt;br /&gt;c. Sync Blackberry with Outlook via USB&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Supported OS&lt;/u&gt;&lt;br /&gt;Runs on Microsoft Windows 2000 (SP3 or higher), Windows XP (SP1 or higher), Windows 2003 Terminal Server, and Windows Vista&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Supported Outlook&lt;/u&gt;&lt;br /&gt;Supports Microsoft Outlook 2003 and 2007&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://www.sun.com/software/products/calendar_srvr/connector/specs.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Approach 2: Blackberry sync over-the-air&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;a. Purchase NotifyLink Enterprise Server&lt;br /&gt;b. Install and Configure to connect to Sun Comms Suite 6u2 (Mail &amp;amp; Calendar)&lt;br /&gt;c. Blackberry sync with NotifyLink over-the-air&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TJBexLTY_qI/AAAAAAAAA4w/5nXjbuY4G_I/s1600/Screen+shot+2010-09-15+at+1.50.38+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TJBexLTY_qI/AAAAAAAAA4w/5nXjbuY4G_I/s320/Screen+shot+2010-09-15+at+1.50.38+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://support.notifycorp.com/support/index.php?_m=knowledgebase&amp;amp;_a=viewarticle&amp;amp;kbarticleid=676"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Note: If users only want to "sync" email with Sun Messaging Server with Outlook, no connector is required. It works out-of-the-box via POP or IMAP protocol.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1380616374277043476?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1380616374277043476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/09/blackberry-email-calendar-sync-with-sun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1380616374277043476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1380616374277043476'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/09/blackberry-email-calendar-sync-with-sun.html' title='Blackberry Email &amp; Calendar Sync with Sun Communications Suite'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/TJBd1xb8FxI/AAAAAAAAA4o/yOnoxBDmjZ0/s72-c/Screen+shot+2010-09-15+at+1.45.55+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7107227706497504077</id><published>2010-09-08T17:46:00.000+08:00</published><updated>2010-09-08T17:46:26.521+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO Identity Services</title><content type='html'>Besides Policy Agent that performs authentication and authorization, OpenSSO offers Identity Services to helps authenticate users who access protected applications.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TIdahttijBI/AAAAAAAAA4g/qMPwE_oSsPk/s1600/Screen+shot+2010-09-08+at+PM+05.38.41.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TIdahttijBI/AAAAAAAAA4g/qMPwE_oSsPk/s320/Screen+shot+2010-09-08+at+PM+05.38.41.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The Identity Services are accessible via SOAP/WSDL and REST.&lt;br /&gt;&lt;br /&gt;Basically, no difference from those offered by Policy Agent:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Authentication and Single Sign-on — Verification of user credentials&lt;/li&gt;&lt;li&gt;Authorization — Permission for authenticated users to access secured resources&lt;/li&gt;&lt;li&gt;Provisioning — Creation, deletion, search, and editing&lt;/li&gt;&lt;li&gt;Log — Ability to audit and record operations&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The only difference is developers have to code by themselves to achieve the above 4 functionalities.&lt;br /&gt;More flexibility if you look at it positively. Of course, more effort required.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7107227706497504077?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7107227706497504077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/09/opensso-identity-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7107227706497504077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7107227706497504077'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/09/opensso-identity-services.html' title='OpenSSO Identity Services'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/TIdahttijBI/AAAAAAAAA4g/qMPwE_oSsPk/s72-c/Screen+shot+2010-09-08+at+PM+05.38.41.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-295496415429864599</id><published>2010-08-30T22:00:00.000+08:00</published><updated>2010-08-30T22:00:40.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO Data Stores</title><content type='html'>There are a few data stores which we need to configure in OpenSSO.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/THu3wS8HktI/AAAAAAAAA4Y/biENcjQ8eDs/s1600/DataStore.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/_lntk5chS4Ik/THu3wS8HktI/AAAAAAAAA4Y/biENcjQ8eDs/s400/DataStore.jpg" width="370" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. &lt;b&gt;&lt;i&gt;Authentication Data Store&lt;/i&gt;&lt;/b&gt; assists in users' authentication&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. &lt;b&gt;&lt;i&gt;Identity Data Store&lt;/i&gt;&lt;/b&gt; holds the users' profiles&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Usually, there is a 1-to-1 mapping between a user in the authentication data store and a user in the identity data store&lt;/li&gt;&lt;li&gt;Authentication data can also be stored together with Identity Data Store&lt;/li&gt;&lt;li&gt;i.e. The Sun LDAP is used for both Authentication and Identity&lt;/li&gt;&lt;li&gt;The reserve is also true: Active Directory can be configured for both purposes&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. &lt;b&gt;&lt;i&gt;Configuration Data Store&lt;/i&gt;&lt;/b&gt; is used for storing service configuration data and other information pertinent to the server's operation. Policies are also stored here.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;We used to store Configuration data in Sun LDAP as well&lt;/li&gt;&lt;li&gt;However, since version Access Manager 8.x (aka OpenSSO 8.x), these data is now stored in the embedded OpenDS. &amp;nbsp;&lt;/li&gt;&lt;li&gt;This embedded OpenDS makes configuration for high-availability easier - less work to do&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-295496415429864599?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/295496415429864599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-data-stores.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/295496415429864599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/295496415429864599'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-data-stores.html' title='OpenSSO Data Stores'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/THu3wS8HktI/AAAAAAAAA4Y/biENcjQ8eDs/s72-c/DataStore.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8839657289523082679</id><published>2010-08-29T11:42:00.000+08:00</published><updated>2010-08-29T11:42:12.822+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>Difference between Web and J2EE Policy Agents</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In OpenSSO, there are 2 types of Policy Agent to choose. Customers always get confused on which type&amp;nbsp;and on which tier&amp;nbsp;to deploy in their environment.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The following diagrams illustrates clearly. Based on the &lt;a href="http://azlabs.blogspot.com/2010/08/opensso-and-enterprise-sso-selection.html"&gt;Selection Criteria&lt;/a&gt;, Web Policy Agent will be deployed on the Web tier.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/THnVehQsscI/AAAAAAAAA4I/M1p_ft2d2-o/s1600/WebPolicyAgent.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_lntk5chS4Ik/THnVehQsscI/AAAAAAAAA4I/M1p_ft2d2-o/s320/WebPolicyAgent.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;J2EE Policy Agent will be deployed on the Application tier.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/THnVimVbXbI/AAAAAAAAA4Q/_GaugK-8fZg/s1600/J2EEPolicyAgent.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/THnVimVbXbI/AAAAAAAAA4Q/_GaugK-8fZg/s320/J2EEPolicyAgent.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;PS: If J2EE Policy Agent is deployed on the Application tier, there is no need for Web Policy Agent to be deployed on the Web tier. Simply allow the pass-through on the web server and let the Policy Evaluation be carried out on the Application tier.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8839657289523082679?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8839657289523082679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/difference-between-web-and-j2ee-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8839657289523082679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8839657289523082679'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/difference-between-web-and-j2ee-policy.html' title='Difference between Web and J2EE Policy Agents'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/THnVehQsscI/AAAAAAAAA4I/M1p_ft2d2-o/s72-c/WebPolicyAgent.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-957402889639311836</id><published>2010-08-26T12:34:00.003+08:00</published><updated>2010-08-26T12:42:15.775+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO and Enterprise SSO Selection Criteria</title><content type='html'>I have been busy involving in the design of a Single Sign-On (SSO) and Enterprise Single Sign-On (ESSO)&amp;nbsp;solution for a local ministry.&lt;br /&gt;&lt;br /&gt;They have a few hundreds applications (web-based and non web-based). Thus we need to have a concise selection criteria for them.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/THXunEkCd2I/AAAAAAAAA34/4RS-hGjdbtY/s1600/OSSO-Selection.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="135" src="http://2.bp.blogspot.com/_lntk5chS4Ik/THXunEkCd2I/AAAAAAAAA34/4RS-hGjdbtY/s400/OSSO-Selection.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There are 2 types of policy agents available from OpenSSO:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. Web Policy Agent&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. J2EE Policy Agent&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In order to integrate applications for Single Sign-On with OpenSSO, they must be:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. web-based&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. authenticate with a common authentication repository&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. supported by available policy agents from OpenSSO&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If applications are customizable, Web Policy Agent will be chosen. Otherwise, if applications are pure J2EE-based that utilize the Java Authentication and Authorization Service (&lt;a href="http://en.wikipedia.org/wiki/Java_Authentication_and_Authorization_Service"&gt;JAAS&lt;/a&gt;), then J2EE Policy Agent will be chosen.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If the above 2 criteria cannot be met, then ESSO will be chosen.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-957402889639311836?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/957402889639311836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-and-enterprise-sso-selection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/957402889639311836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/957402889639311836'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-and-enterprise-sso-selection.html' title='OpenSSO and Enterprise SSO Selection Criteria'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/THXunEkCd2I/AAAAAAAAA34/4RS-hGjdbtY/s72-c/OSSO-Selection.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6992562084557100215</id><published>2010-08-26T08:20:00.000+08:00</published><updated>2010-08-26T12:25:29.205+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Automatic spam detection for comments</title><content type='html'>Salute to Blogger! There is now a feature to automatically detect spam for comments ...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/THXr5NreEWI/AAAAAAAAA3w/3n6JdGnTqLM/s1600/Screen+shot+2010-08-26+at+PM+12.18.24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="116" src="http://2.bp.blogspot.com/_lntk5chS4Ik/THXr5NreEWI/AAAAAAAAA3w/3n6JdGnTqLM/s400/Screen+shot+2010-08-26+at+PM+12.18.24.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I love this feature since I have been spending time manually removing spammed comments for the past&amp;nbsp;months.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6992562084557100215?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6992562084557100215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/automatic-spam-detection-for-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6992562084557100215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6992562084557100215'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/automatic-spam-detection-for-comments.html' title='Automatic spam detection for comments'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/THXr5NreEWI/AAAAAAAAA3w/3n6JdGnTqLM/s72-c/Screen+shot+2010-08-26+at+PM+12.18.24.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-6131183962734179860</id><published>2010-08-13T01:48:00.000+08:00</published><updated>2010-08-13T01:48:58.702+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Oracle Directory Services Directory Server Enterprise Edition 11gR1</title><content type='html'>Sun Directory Server Enterprise Edition (DSEE 7.0) has now been rebranded as &lt;b&gt;&lt;i&gt;Oracle Directory Services Directory Server Enterprise Edition 11gR1&lt;/i&gt;&lt;/b&gt;. It is now part under the Oracle Fusion Middleware umbrella.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TGQzoHzZJcI/AAAAAAAAA3g/SHjxk3H7lIc/s1600/Screen+shot+2010-08-13+at+1.45.11+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TGQzoHzZJcI/AAAAAAAAA3g/SHjxk3H7lIc/s400/Screen+shot+2010-08-13+at+1.45.11+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://blogs.sun.com/nickwooler/entry/new_release_oracle_directory_server"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-6131183962734179860?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/6131183962734179860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/oracle-directory-services-directory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6131183962734179860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/6131183962734179860'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/oracle-directory-services-directory.html' title='Oracle Directory Services Directory Server Enterprise Edition 11gR1'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TGQzoHzZJcI/AAAAAAAAA3g/SHjxk3H7lIc/s72-c/Screen+shot+2010-08-13+at+1.45.11+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-5685203304795231298</id><published>2010-08-10T20:12:00.001+08:00</published><updated>2010-08-11T01:19:30.370+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO Distributed UI Server &amp; Windows Desktop SSO</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For security reason, OpenSSO Distributed Authentication UI Server is recommended to "front" the OpenSSO Server that sits behind the firewall. For&amp;nbsp;better performance, you can deploy multiple DAUI Servers with multiple OpenSSO Servers.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TGGIzCdXzfI/AAAAAAAAA3Y/kOyoI5aAP8Q/s1600/Screen+shot+2010-08-11+at+1.10.01+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="383" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TGGIzCdXzfI/AAAAAAAAA3Y/kOyoI5aAP8Q/s400/Screen+shot+2010-08-11+at+1.10.01+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/div&gt;However, do note that if you deploy a Distributed Authentication UI Server in front of your protected OpenSSO Server, then &lt;b&gt;&lt;i&gt;Windows Desktop SSO is not supported&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Read &lt;a href="http://docs.sun.com/app/docs/doc/820-3320/gcdsz?a=view"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-5685203304795231298?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/5685203304795231298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-distributed-ui-server-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5685203304795231298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/5685203304795231298'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/08/opensso-distributed-ui-server-windows.html' title='OpenSSO Distributed UI Server &amp; Windows Desktop SSO'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TGGIzCdXzfI/AAAAAAAAA3Y/kOyoI5aAP8Q/s72-c/Screen+shot+2010-08-11+at+1.10.01+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7866065236440916374</id><published>2010-07-23T08:29:00.011+08:00</published><updated>2010-07-23T08:29:00.598+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>How to disable SSL on Sun Directory Server?</title><content type='html'>I got a call from my customer asking how to manually disable the SSL on his faulty Directory Server.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TEba-ws2L3I/AAAAAAAAA3A/V3hJLYyEMQA/s1600/Screen+shot+2010-07-21+at+7.12.00+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TEba-ws2L3I/AAAAAAAAA3A/V3hJLYyEMQA/s400/Screen+shot+2010-07-21+at+7.12.00+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Edit dse.ldif. Locate dn: cn=config:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;nsslapd-security: on&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;nsslapd-secureport: 636&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TEbbI6JwXBI/AAAAAAAAA3Q/uE2-5EWh6NY/s1600/Screen+shot+2010-07-21+at+7.11.38+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TEbbI6JwXBI/AAAAAAAAA3Q/uE2-5EWh6NY/s400/Screen+shot+2010-07-21+at+7.11.38+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Solution:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. Stop Directory Server&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. Remove the above 2 lines&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. Add the following line:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;nsslapd-security: off&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;4. Start Directory Server&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Done!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7866065236440916374?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7866065236440916374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/how-to-disable-ssl-on-sun-directory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7866065236440916374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7866065236440916374'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/how-to-disable-ssl-on-sun-directory.html' title='How to disable SSL on Sun Directory Server?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/TEba-ws2L3I/AAAAAAAAA3A/V3hJLYyEMQA/s72-c/Screen+shot+2010-07-21+at+7.12.00+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3523668857087840090</id><published>2010-07-22T08:31:00.002+08:00</published><updated>2010-07-22T08:31:00.479+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Why a Directory Consumer is not read-only? - Part II</title><content type='html'>Continue from my previous &lt;a href="http://azlabs.blogspot.com/2010/07/why-directory-consumer-is-not-read-only.html"&gt;post&lt;/a&gt; ...&lt;br /&gt;&lt;br /&gt;Master: ds-master.singapore.sun.com:389&lt;br /&gt;Consumer: ds-slave.singapore.sun.com:1389&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's perform a modification operation on the Consumer. I modified the entry for CLow2.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;i&gt;Below is what you'll observe in the access log of the Consumer:&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[20/Jul/2010:02:26:28 +0800] conn=0 op=99 msgId=2098 - &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;MOD&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dn="uid=CLow2,ou=People,dc=singapore,dc=sun,dc=com"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[20/Jul/2010:02:26:28 +0800] conn=0 op=99 msgId=2098 - RESULT &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;err=10&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; tag=103 nentries=0 etime=0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;The consumer rejects modification operation (err=10). It kicks started the referral process to redirect the MOD request to the master.&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Below is what you'll observe in the access log of the Master:&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[20/Jul/2010:02:26:28 +0800] conn=63 op=1 msgId=2100 - &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;MOD&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; dn="uid=CLow2,ou=People,dc=singapore,dc=sun,dc=com"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;[20/Jul/2010:02:26:28 +0800] conn=63 op=1 msgId=2100 - RESULT &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;err=0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; tag=103 nentries=0 etime=0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;The master process the modification request successfully (err=0).&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TEbFFmowI7I/AAAAAAAAA24/gXTL2zjThs0/s1600/Screen+shot+2010-07-21+at+2.07.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TEbFFmowI7I/AAAAAAAAA24/gXTL2zjThs0/s320/Screen+shot+2010-07-21+at+2.07.16+PM.png" width="238" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;i&gt;Below is the dse.ldif file on the Consumer:&lt;/i&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dn: cn="dc=singapore,dc=sun,dc=com",cn=mapping tree,cn=config&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: top&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: extensibleObject&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: nsMappingTree&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cn: "dc=singapore,dc=sun,dc=com"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-backend: userRoot&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-referral: ldap://ds-master.singapore.sun.com:389/dc%3Dsingapore,dc%3Dsun,dc&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;%3Dcom&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-state: referral on update&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;modifiersName: cn=server,cn=plugins,cn=config&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;modifyTimestamp: 20090923115909Z&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;numSubordinates: 1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;u&gt;&lt;i&gt;Below is the dse.ldif file on the Master:&lt;/i&gt;&lt;/u&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dn: cn="dc=singapore,dc=sun,dc=com",cn=mapping tree,cn=config&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: top&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: extensibleObject&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;objectClass: nsMappingTree&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cn: "dc=singapore,dc=sun,dc=com"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-state: backend&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-backend: userRoot&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3523668857087840090?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3523668857087840090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/why-directory-consumer-is-not-read-only_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3523668857087840090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3523668857087840090'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/why-directory-consumer-is-not-read-only_22.html' title='Why a Directory Consumer is not read-only? - Part II'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TEbFFmowI7I/AAAAAAAAA24/gXTL2zjThs0/s72-c/Screen+shot+2010-07-21+at+2.07.16+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-2623232821259645138</id><published>2010-07-21T14:16:00.001+08:00</published><updated>2010-07-21T18:00:48.642+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Why a Directory Consumer is not read-only?</title><content type='html'>This is an interesting question.&lt;br /&gt;&lt;br /&gt;In my customer's environment, he has a pair of Sun Directory Servers acting as Masters. The data in the pair is kept in-sync via Multi-Master Replication (MMR).&lt;br /&gt;&lt;br /&gt;There are 4&amp;nbsp;Sun Directory Servers acting as&amp;nbsp;consumers. The data are replicated from the 2 Masters.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Recently, he found out that when he modifies entries on any of the Consumers, the modified entries are updated to the Masters!&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;This violates the concept of a Consumer, according to what he understands of the term.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, let's take a close look at the following diagram:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TEaPKkULGRI/AAAAAAAAA2w/M7LEWJGgGts/s1600/Screen+shot+2010-07-21+at+2.07.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TEaPKkULGRI/AAAAAAAAA2w/M7LEWJGgGts/s320/Screen+shot+2010-07-21+at+2.07.16+PM.png" width="238" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The diagram illustrates a Master-Consumer deployment architecture.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Did you notice there is a dotted arrow pointing from the Consumer back to the Master? This is the &lt;b&gt;&lt;i&gt;Referral&lt;/i&gt;&lt;/b&gt; that is causing the "side-effect".&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TEbFFmowI7I/AAAAAAAAA24/gXTL2zjThs0/s1600/Screen+shot+2010-07-21+at+2.07.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TEbFFmowI7I/AAAAAAAAA24/gXTL2zjThs0/s320/Screen+shot+2010-07-21+at+2.07.16+PM.png" width="238" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ok, it's not "side-effect". It's a product feature of Sun Directory Server.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Whenever there is a modification request on the Consumer, the &lt;b&gt;&lt;i&gt;Referral &lt;/i&gt;&lt;/b&gt;will redirect the request back to the Master. The Master will be the one that actually updates the entries. &lt;i&gt;The Consumer can never process a modification request, it can only perform a search request&lt;/i&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-2623232821259645138?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/2623232821259645138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/why-directory-consumer-is-not-read-only.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2623232821259645138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/2623232821259645138'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/why-directory-consumer-is-not-read-only.html' title='Why a Directory Consumer is not read-only?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/TEaPKkULGRI/AAAAAAAAA2w/M7LEWJGgGts/s72-c/Screen+shot+2010-07-21+at+2.07.16+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-535262345190726257</id><published>2010-07-17T08:29:00.022+08:00</published><updated>2010-07-17T08:29:00.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO Multi-Servers Mode</title><content type='html'>There are at least 2 data stores in OpenSSO - Configuration and User data stores.&lt;br /&gt;&lt;br /&gt;The older version of OpenSSO, which is Sun Java System Access Manager, does not utilize an embedded Configuration Data Store. As such, we usually utilize the same Sun Java System Directory Server to store both the configuration and users information. &lt;i&gt;(unless, the users information are stored in Active Directory)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In OpenSSO, &lt;a href="http://www.opends.org/"&gt;OpenDS&lt;/a&gt;&amp;nbsp;is embedded to store Configuration information. It comes pre-installed with every OpenSSO bundle.&lt;br /&gt;&lt;br /&gt;In fact, the recommended deployment approach is not to change this embedded data store.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Using the OpenSSO Enterprise embedded configuration data store can &lt;/span&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lower response time and ensure service availability&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; when machine failure occurs.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TECOGjNHuBI/AAAAAAAAA2o/WqTk3SDy1RU/s1600/Screen+shot+2010-07-17+at+12.33.05+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="337" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TECOGjNHuBI/AAAAAAAAA2o/WqTk3SDy1RU/s400/Screen+shot+2010-07-17+at+12.33.05+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;What I like about this embedded data store is: if you scale by adding another node, there is nothing you need to do to ensure the configuration information are replicated and always in-sync. Replication is taken care of, transparently.&lt;br /&gt;&lt;br /&gt;Nice!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-535262345190726257?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/535262345190726257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/opensso-multi-servers-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/535262345190726257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/535262345190726257'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/opensso-multi-servers-mode.html' title='OpenSSO Multi-Servers Mode'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TECOGjNHuBI/AAAAAAAAA2o/WqTk3SDy1RU/s72-c/Screen+shot+2010-07-17+at+12.33.05+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-3105105014678660671</id><published>2010-07-11T08:22:00.011+08:00</published><updated>2010-07-11T08:22:00.257+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO'/><title type='text'>OpenSSO Authentication and Authorization Interactions</title><content type='html'>While refreshing myself with OpenSSO, I came across this diagram that illustrates very clearly how OpenSSO and Policy Agent operates in a Access Control environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TDiswVS_rLI/AAAAAAAAA2g/WIhP0UtWcug/s1600/FAMflow.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="251" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TDiswVS_rLI/AAAAAAAAA2g/WIhP0UtWcug/s400/FAMflow.gif" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I love diagram that is simply, yet tells a complete story of a product's capability.&lt;/div&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-3105105014678660671?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/3105105014678660671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/opensso-authentication-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3105105014678660671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/3105105014678660671'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/opensso-authentication-and.html' title='OpenSSO Authentication and Authorization Interactions'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TDiswVS_rLI/AAAAAAAAA2g/WIhP0UtWcug/s72-c/FAMflow.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8665254047264058054</id><published>2010-07-09T08:08:00.088+08:00</published><updated>2010-07-09T08:08:00.379+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>How to reset DSCC Directory Service Manager password?</title><content type='html'>I was with a customer the other day. He has another Sun Directory Server setup by another vendor long time ago. He attempted to login to DSCC, but he was not able to remember the "admin" (Directory Service Manager) password.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TDXrTWWwSYI/AAAAAAAAA2Q/jmehYcjRDRU/s1600/DSCC.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TDXrTWWwSYI/AAAAAAAAA2Q/jmehYcjRDRU/s400/DSCC.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Some forums I searched talked about resetting the Service Manager password via the DSCC console. &lt;b&gt;&lt;i&gt;What a joke! :) I can't even login, how am I able to reset password via DSCC console?&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TDX5ZRaHNyI/AAAAAAAAA2Y/Zjkhb9dmAcA/s1600/DSCC1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TDX5ZRaHNyI/AAAAAAAAA2Y/Zjkhb9dmAcA/s400/DSCC1.PNG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Changing password via DSCC console&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;There are 2 ways to resolve this issue:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;1. To dismantle and initialize DSCC again&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ./dsccsetup dismantle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ./dsccsetup initialize&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;Registration is on-going. Please wait...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DSCC is registered in Sun Java(TM) Web Console&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;DSCC agent has been successfully registered in Cacao.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;***&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Choose password for Directory Service Manager:&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Confirm password for Directory Service Manager:&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Creating DSCC registry...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DSCC Registry has been created successfully&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;***&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simple. But of course, previous configuration of registered servers are gone. You need to register again.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Change password via CLI&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;Some basic concepts first.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ./dsccsetup status&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;***&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;DSCC Registry has been created&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Path of DSCC registry is /var/opt/SUNWdsee/dscc6/dcc/ads&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Port of DSCC registry is 3998&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;***&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;DSCC configuration are stored in a LDAP database at port 3998&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;Service Manager is known as&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;cn=admin,cn=Administrators,cn=dscc&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt; in this LDAP database (see screenshot above)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;"cn=Directory Manager" credential is required to modify the Service Manager password&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;The funny thing is the default password for "cn=Directory Manager" is the same as&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;Directory Service Manager.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;(see &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;dsccsetup initialize&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt; above. the steps are so simple. it assumes both to have the same password)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;So we need to perform 2 steps:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Step 1 - Change the Directory Manager password&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# /opt/SUNWdsee/ds6/bin/pwdhash -D /var/opt/SUNWdsee/dscc6/dcc/ads -s SHA password2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{SSHA}qFcXDQCKZ4u4GyrM8Uw4uGOHdsnVPP9MaC0WeQ==&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# cd&amp;nbsp;/var/opt/SUNWdsee/dscc6/dcc/ads/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ./stop-slapd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# cd&amp;nbsp;/var/opt/SUNWdsee/dscc6/dcc/ads/config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# cp dse.ldif dse.ldif.OLD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# vi dse.ldif&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;At dn: cn=config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Replace:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;i&gt;nsslapd-rootpw&lt;/i&gt;&lt;/b&gt;: {SSHA}guaZfnFtTHeT8EpWpBhuRlBCMLWpdgt0tBvfBw==&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;with:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nsslapd-rootpw: {SSHA}qFcXDQCKZ4u4GyrM8Uw4uGOHdsnVPP9MaC0WeQ==&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ./start-slapd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Step 2 - Change the Service Manager password&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bash-3.00# ldapmodify -p 3998 -D "cn=Directory Manager"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Enter bind password:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dn: cn=admin,cn=Administrators,cn=dscc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;changetype: modify&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;replace: userPassword&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;userPassword: password2 &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;-- Rest assured. This password will be hashed during modification.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;modifying entry cn=admin,cn=Administrators,cn=dscc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Done!&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8665254047264058054?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8665254047264058054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/how-to-reset-dscc-directory-service.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8665254047264058054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8665254047264058054'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/how-to-reset-dscc-directory-service.html' title='How to reset DSCC Directory Service Manager password?'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TDXrTWWwSYI/AAAAAAAAA2Q/jmehYcjRDRU/s72-c/DSCC.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-931255480453323806</id><published>2010-07-08T08:43:00.026+08:00</published><updated>2011-04-11T10:33:06.442+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>DSCC deployment with firewall</title><content type='html'>In a production environment, there are always firewalls. This is for sure.&lt;br /&gt;&lt;br /&gt;Below is a typical deployment of a pair of Sun Directory Servers deployed in 2 data centers. They are configured for Multi-Master Replication (MMR).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TDRMrB2-UaI/AAAAAAAAA2A/kceh4TTfE60/s1600/DS3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TDRMrB2-UaI/AAAAAAAAA2A/kceh4TTfE60/s400/DS3.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This deployment is simple. Only port 389 (bi-directional) is required to be enabled on the firewall. &lt;br /&gt;&lt;br /&gt;Now, if the Administrators are all stationed in Data Center 1 where DS 1 is and they would like to manage all Directory Servers via DSCC (Directory Server Control Control), we have a challenge. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TDRMtY0UkvI/AAAAAAAAA2I/vkOMfbHodTw/s1600/DS4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TDRMtY0UkvI/AAAAAAAAA2I/vkOMfbHodTw/s400/DS4.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;We need to understand how DSCC, Cacao and Directory Server works.&lt;br /&gt;&lt;br /&gt;Basically, DSCC manages Directory Server instances through Cacao agent. On each physical server where Directory Server is installed, we need a Cacao agent installed as well. This agent runs on port 11162 by default.&lt;br /&gt;&lt;br /&gt;Now, if we make changes to the Directory Server configuration, there is a need to update the DSCC registry. This ensures the states are kept intact. DSCC registry runs on port 3998 and 3999 (SSL) by default.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;So, what do we need to configure on the firewall?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Port 11162 (uni-directional) from DS1 to DS2&lt;/li&gt;&lt;li&gt;Port 3998 and 2999 (uni-directional) from DS2 to DS1&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;Port 636 (bi-directional) &amp;lt;- for starting/stopping Directory Server via DSCC (Thanks, Teck Meng!)&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-931255480453323806?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/931255480453323806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/dscc-deployment-with-firewall.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/931255480453323806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/931255480453323806'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/dscc-deployment-with-firewall.html' title='DSCC deployment with firewall'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TDRMrB2-UaI/AAAAAAAAA2A/kceh4TTfE60/s72-c/DS3.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-4709709471107891652</id><published>2010-07-07T13:29:00.001+08:00</published><updated>2010-07-07T13:38:29.354+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Bind to specific IP address for Sun Directory Server</title><content type='html'>Some customers have powerful machines. It would be a waste to install a single instance of Sun Directory Server on each machine. &lt;br /&gt;&lt;br /&gt;When you have more than 1 instance of Directory Server running, you'll end-up having the following architecture most of the time. Port 389 will be assigned to the 1st instance; while Port 1389 will be assigned to the 2nd instance. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TDQPSv68K8I/AAAAAAAAA1w/ViQHTMQeDZo/s1600/DS1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TDQPSv68K8I/AAAAAAAAA1w/ViQHTMQeDZo/s320/DS1.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Some application developers do not like to use port other than 389. Or corporate policy does not encourage that. I have encountered customers who dictate Directory Service to be only served via port 389, and nothing else. &lt;br /&gt;&lt;br /&gt;So, we'll end up having to redesign the architecture to be the one shown below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TDQPVGnEjKI/AAAAAAAAA14/UVEA5UgmieM/s1600/DS2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TDQPVGnEjKI/AAAAAAAAA14/UVEA5UgmieM/s320/DS2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now, the prerequisite is that the machine has to either support multi-home or have more than 1 NIC interface. This is to ensure that port 389 will not clash when both instances attempt to start.&lt;br /&gt;&lt;br /&gt;In addition, we need to add the following entries into the dse.ldif for DS1 and DS2.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;nsslapd-listenhost: ip-address-[1,2]&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;nsslapd-securelistenhost: ip-address-[1,2]&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remember to stop DS first; add entries; start DS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Note: By default, both entries are missing from dse.ldif, which implies 0.0.0.0 is taken as default value.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-4709709471107891652?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/4709709471107891652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/07/bind-to-specific-ip-address-for-sun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4709709471107891652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/4709709471107891652'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/07/bind-to-specific-ip-address-for-sun.html' title='Bind to specific IP address for Sun Directory Server'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TDQPSv68K8I/AAAAAAAAA1w/ViQHTMQeDZo/s72-c/DS1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-1311723068996310251</id><published>2010-06-25T08:02:00.033+08:00</published><updated>2010-06-25T08:02:00.766+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Disallow anonymous access to Sun Directory Server</title><content type='html'>I received an email from my customer a week ago.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Even when a new instance is created, the default ACI allows anonymous to access this? Any ideas?&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;My reply below:&lt;br /&gt;&lt;br /&gt;Yes, Sun Directory Server is built as-such. It behaves like a "Yellow Pages" sort-of.&amp;nbsp;E.g. In a corporate directory server, anyone can search for anyone by default, with the exception of password.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www-03.ibm.com/systems/i/software/ldap/ldapspec.html"&gt;site&lt;/a&gt; from IBM explains better than me.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Searching a directory is similar to looking up a name in the white or yellow pages of a telephone directory. If the name of a particular individual object is not known, the directory can be searched for a list of objects that meet a certain requirement.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So we know that, by default, the Directory Server is accessible anonymously.&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;How can we disable this function?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Very easy. I did the following for another customer of mine in Thailand.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Remove the following segment in 99user.ldif in the config/schema directory&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;dn: o=XXX aci: (target ="ldap:///o=XXX")(targetattr !="userPassword")&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;(version 3.0;acl "Anonymous read-search access"; allow (read, search, compare) (userdn = "ldap:///anyone");)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Easy. But do remember to stop/start the Directory Server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-1311723068996310251?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/1311723068996310251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/disallow-anonymous-access-to-sun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1311723068996310251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/1311723068996310251'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/disallow-anonymous-access-to-sun.html' title='Disallow anonymous access to Sun Directory Server'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7374451467679074510</id><published>2010-06-24T15:54:00.000+08:00</published><updated>2010-06-24T15:54:09.190+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><title type='text'>Oracle Directory Server in YOG</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I just received a call from my counterpart in Oracle (ex-Sun) asking for my availability in AUG to support a critical Directory Services infrastructure.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I was curious and probed further...&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;... and I was told that the YOG (Youth Olympic Games) that is going to be held in Singapore is using Oracle Directory Server (aka. Sun Java System Directory Server) and my service might be required.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TCMNY10C5hI/AAAAAAAAA1o/Vy5ABmaO6Hw/s1600/Screen+shot+2010-06-24+at+PM+03.45.25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TCMNY10C5hI/AAAAAAAAA1o/Vy5ABmaO6Hw/s320/Screen+shot+2010-06-24+at+PM+03.45.25.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It's my honor definitely.&lt;br /&gt;&lt;br /&gt;However, I have a national obligation (aka &lt;a href="http://en.wikipedia.org/wiki/Reservist"&gt;Reservist&lt;/a&gt;) during that period of time. If time permits and the money is right, I'll try to make myself available. I'll talk to my boss in the Army. Ha. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7374451467679074510?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7374451467679074510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/oracle-directory-server-in-yog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7374451467679074510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7374451467679074510'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/oracle-directory-server-in-yog.html' title='Oracle Directory Server in YOG'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_lntk5chS4Ik/TCMNY10C5hI/AAAAAAAAA1o/Vy5ABmaO6Hw/s72-c/Screen+shot+2010-06-24+at+PM+03.45.25.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7002696832339959789</id><published>2010-06-21T09:33:00.000+08:00</published><updated>2010-06-21T10:03:05.263+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenDS'/><title type='text'>Sun Software Product Map - Part III</title><content type='html'>If you take a good look at the &lt;a href="http://www.oracle.com/us/sun/sun-products-map-075562.html"&gt;list&lt;/a&gt;, you'll notice that OpenDS is missing.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TBw7VG5-riI/AAAAAAAAA1g/IsdH7ZDBw3k/s1600/OpenDS.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="68" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TBw7VG5-riI/AAAAAAAAA1g/IsdH7ZDBw3k/s400/OpenDS.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;FYI, there is a commercial version of OpenDS - Sun OpenDS Standard Edition.&lt;br /&gt;&lt;br /&gt;From what I know, Oracle is still defining the strategy for OpenDS. Until then, we do not know what will happen to OpenDS. &lt;br /&gt;&lt;br /&gt;A lot of development work has been poured into OpenDS. It's a total rewrite in Java from Sun Java System Directory Server.&amp;nbsp;I'm keeping my fingers crossed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By the way, Directory Service is another strength of us. So we'll be watching closely on the development of OpenDS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7002696832339959789?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7002696832339959789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map-part-iii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7002696832339959789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7002696832339959789'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map-part-iii.html' title='Sun Software Product Map - Part III'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TBw7VG5-riI/AAAAAAAAA1g/IsdH7ZDBw3k/s72-c/OpenDS.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8071159798221952115</id><published>2010-06-19T08:45:00.049+08:00</published><updated>2010-06-19T08:45:00.414+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Portal Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='LifeRay'/><title type='text'>Sun Software Product Map - Part II</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;i&gt;Sun Java System Portal Server&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Sun Java System Portal Server is completed discontinued.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Sun Portal Server brings me very good memory. This is the very first product we deployed in Philippines when we become Sun Partner 6 years back. Subsequently, we deployed many more instances. It's selling well&amp;nbsp;in Philippines.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In Singapore, we still have a few Sun Portal Servers running. I deployed 2 instances in S'pore and am currently supporting one of them.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Goodbye, my dear friend.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TBsyQbYWqXI/AAAAAAAAA1Y/mrWi0H74tAc/s1600/Screen+shot+2010-06-18+at+PM+04.45.13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TBsyQbYWqXI/AAAAAAAAA1Y/mrWi0H74tAc/s400/Screen+shot+2010-06-18+at+PM+04.45.13.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Sun Java System Web Server&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sun Java System Web Server and Web Proxy Server have been rebranded to Oracle &lt;b&gt;&lt;i&gt;iPlanet&lt;/i&gt;&lt;/b&gt; Web Server and Oracle &lt;b&gt;&lt;i&gt;iPlanet&lt;/i&gt;&lt;/b&gt; Web Proxy Server.&lt;br /&gt;&lt;br /&gt;Welcome back, iPlanet! History of iPlanet &lt;a href="http://en.wikipedia.org/wiki/IPlanet"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;iPlanet has come a long way ...&lt;br /&gt;&lt;br /&gt;iPlanet ... Sun ONE ... Java Enterprise System ... Sun Java System ... iPlanet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Sun Java System Identity Manager&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sun Java System Identity Manager is now Oracle Waveset. (Waveset IdM was bought over by Sun)&lt;br /&gt;&lt;br /&gt;Oracle is keen on pushing it's own Oracle Identity Manager. Thus there is no choice but to discard Sun Identity Manager. Sun Role Manager (bought over from Vaau), which was supposed to be integrated with Sun Identity Manager, is now rebranded as Oracle Identity Analytics. Most likely it will be used to integrate/complement Oracle Identity Manager.&lt;br /&gt;&lt;br /&gt;Unlike Sun Portal Server, Oracle Waveset is kept. I can only guess that we have a few local banks currently using it. A huge ministry has just awarded a tender and the key component is Oracle Waveset.&lt;br /&gt;&lt;br /&gt;In the Asia region, a few Thai banks are also customers of Oracle Waveset to my knowledge.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-8071159798221952115?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/8071159798221952115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map-part-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8071159798221952115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/8071159798221952115'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map-part-ii.html' title='Sun Software Product Map - Part II'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TBsyQbYWqXI/AAAAAAAAA1Y/mrWi0H74tAc/s72-c/Screen+shot+2010-06-18+at+PM+04.45.13.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7860576892265885978</id><published>2010-06-18T16:11:00.001+08:00</published><updated>2010-06-18T16:20:03.562+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Directory Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Portal Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Identity Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Calendar Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun Messaging Server'/><title type='text'>Sun Software Product Map</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The name "&lt;i&gt;Sun Java Systems Communications Suite&lt;/i&gt;" is now history.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Communications Suite is one of the products we are very strong in.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TBspPkc8L1I/AAAAAAAAA1Q/MzebWWpNOjA/s1600/Screen+shot+2010-06-18+at+PM+04.07.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TBspPkc8L1I/AAAAAAAAA1Q/MzebWWpNOjA/s400/Screen+shot+2010-06-18+at+PM+04.07.03.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I just find it weird that Sun Messaging Server has been rebranded as Oracle Communications Messaging &lt;b&gt;&lt;i&gt;Exchange&lt;/i&gt;&lt;/b&gt; Server. &amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Do we really need that word?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;PS: The full listing &lt;/i&gt;&lt;a href="http://www.oracle.com/us/sun/sun-products-map-075562.html"&gt;&lt;i&gt;here&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7860576892265885978?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7860576892265885978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7860576892265885978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7860576892265885978'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/sun-software-product-map.html' title='Sun Software Product Map'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TBspPkc8L1I/AAAAAAAAA1Q/MzebWWpNOjA/s72-c/Screen+shot+2010-06-18+at+PM+04.07.03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7793439480308087665</id><published>2010-06-16T13:41:00.004+08:00</published><updated>2010-06-16T13:55:29.129+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AV/AS'/><title type='text'>Red Condor Archive</title><content type='html'>It has been a while since I last looked at Red Condor. (Read &lt;a href="http://azlabs.blogspot.com/2009/07/why-ironport-and-red-condor-are-dropped.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TBhjROr_MLI/AAAAAAAAA1I/KIS1QGcp_B8/s1600/RedCondor.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TBhjROr_MLI/AAAAAAAAA1I/KIS1QGcp_B8/s320/RedCondor.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Red Condor released a new product offering last October - Red Condor Archive.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt;A secure message archiving service that helps organizations meet compliance regulations, e-discovery support requirements, and data storage and management best practices.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Key benefits of Red Condor Archive include:&lt;/b&gt;&lt;br /&gt;* Archiving of all inbound and outbound messages, internal and external&lt;br /&gt;* &lt;i style="color: red;"&gt;&lt;b&gt;Unlimited storage at no additional cost&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;* All data searchable at all times&lt;br /&gt;* Preservation of data&lt;br /&gt;* Easy to use interface&lt;br /&gt;* Instant set-up&lt;br /&gt;* Replication to multiple data centers&lt;br /&gt;* Role-based Administration Dashboard&lt;br /&gt;* Individual End User search&lt;br /&gt;&lt;br /&gt;Read more &lt;a href="http://www.redcondor.com/products/archive.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am always curious how a company can sustain its business by providing unlimited service/storage at no additional cost.&lt;br /&gt;&lt;br /&gt;There can only be 2 explanations:&lt;br /&gt;1. My maths is poor;&lt;br /&gt;2. I have not been in this business long enough&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;PS: Red Condor is not the only company offering unlimited storage at no additional cost.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;. &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7793439480308087665?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7793439480308087665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/red-condor-archive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7793439480308087665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7793439480308087665'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/red-condor-archive.html' title='Red Condor Archive'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lntk5chS4Ik/TBhjROr_MLI/AAAAAAAAA1I/KIS1QGcp_B8/s72-c/RedCondor.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-111336638454051977</id><published>2010-06-15T14:25:00.004+08:00</published><updated>2010-06-15T14:39:29.382+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Corporate Email Hosting'/><title type='text'>One inbox for every citizen</title><content type='html'>My colleague brought me to attention a grand vision made by the Singapore Government:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;ALL residents will have an online mailbox to which various Government agencies will send statements and bills from tax statements to TV license renewals and service and conservancy bills. Called OneInbox, this service will be launched by 2012. &amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;The Straits Times 14-Jun-2010&lt;/div&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It is indeed very daring - imagine all the old uncles and aunties having to learn how to use computers to read emails, just in case they get penalized for late payments. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Joke aside, I am more curious on which software vendor will get chosen for this tender?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Will it be Microsoft for it's Exchange Server again? &lt;i&gt;(Since the Singapore government is pretty pro with anything Microsoft)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TBce7miwWOI/AAAAAAAAA1A/NAdkxH_JSK8/s1600/Pinda.8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TBce7miwWOI/AAAAAAAAA1A/NAdkxH_JSK8/s320/Pinda.8.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Will it be IBM for it's Lotus Notes? (I doubt so as it is pretty costly)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TBce3_di8KI/AAAAAAAAA0w/JdctGnI87TM/s1600/M2.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TBce3_di8KI/AAAAAAAAA0w/JdctGnI87TM/s200/M2.jpeg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Will it be Oracle/Sun for it's Sun Java System Messaging Server? ( SJS MS used to be relatively cheap under Sun. The pricing is slightly different now though :&amp;gt; &amp;nbsp;Technically wise, it is a ISP-grade software, thus making it very suitable for this deployment )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TBce59j3cKI/AAAAAAAAA04/Y68GhMNo5LM/s1600/I1_hw_Sun_ONE_Messaging_Server_i.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TBce59j3cKI/AAAAAAAAA04/Y68GhMNo5LM/s320/I1_hw_Sun_ONE_Messaging_Server_i.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I personally do not think the Government will go for any cloud service like Goggle Gmail, Microsoft BPOS, or IBM LotusLive. I'll be surprised if one of these 3 wins the deal.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-111336638454051977?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/111336638454051977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/one-inbox-for-every-citizen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/111336638454051977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/111336638454051977'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/one-inbox-for-every-citizen.html' title='One inbox for every citizen'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lntk5chS4Ik/TBce7miwWOI/AAAAAAAAA1A/NAdkxH_JSK8/s72-c/Pinda.8.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-7833996270746720409</id><published>2010-06-10T08:15:00.063+08:00</published><updated>2010-06-10T08:15:00.950+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LifeRay'/><title type='text'>jQuery should be easy to implement</title><content type='html'>The social-network-driven portal based on LifeRay is still under development. (Read &lt;a href="http://azlabs.blogspot.com/2010/06/liferay-strange-css-ui-guideline.html"&gt;here&lt;/a&gt; and &lt;a href="http://azlabs.blogspot.com/2010/04/liferay-portal-hierarchy.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;LifeRay uses jQuery intensively. I was tidying up the Contact Us page yesterday. This page is a static HTML page and has nothing to do with LifeRay.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TA8yvwvEsuI/AAAAAAAAA0E/2mJvzzBZclI/s1600/Screen+shot+2010-06-09+at+PM+02.20.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TA8yvwvEsuI/AAAAAAAAA0E/2mJvzzBZclI/s320/Screen+shot+2010-06-09+at+PM+02.20.27.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;But in the pursuit for consistent look-and-feel, I decided that validation of the form and display of success/error messages should be the same as what one will experience when he logs into LifeRay portal. So jQuery is the way to go!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;The Contact Us form is so simple, yet it took me a long while to make it work using jQuery.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_lntk5chS4Ik/TA8z8yNlv9I/AAAAAAAAA0M/9QqC61gLq80/s1600/Screen+shot+2010-06-09+at+PM+02.24.58.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" src="http://2.bp.blogspot.com/_lntk5chS4Ik/TA8z8yNlv9I/AAAAAAAAA0M/9QqC61gLq80/s400/Screen+shot+2010-06-09+at+PM+02.24.58.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Maybe I'm too old for new technology. Ha! :) I could not find a good example on the web of the 2 things I want to achieve.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;The 2 things are so simple, mind you.&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1. &lt;i&gt;&lt;b&gt;Validate&lt;/b&gt;&lt;/i&gt; fields once "Submit" button is clicked&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2. If the fields are valid, perform a &lt;b&gt;&lt;i&gt;form submission&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Difficult?&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I struggled for quite some time and finally found the solution.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The codes below should be good enough for 80% of JavaScript developers and should be able to digest and implement in 5 mins.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;1. jQuery Scripts Download&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Download the latest copy of &lt;i&gt;jQuery&lt;/i&gt; from &lt;a href="http://jquery.com/"&gt;here&lt;/a&gt;. (rename the script as&amp;nbsp;&lt;i&gt;jquery-latest.js&lt;/i&gt;)&lt;/li&gt;&lt;li&gt;Download the latest copy of &amp;nbsp;&lt;i&gt;jQuery plugin: Validation &lt;/i&gt;from &lt;a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/"&gt;here&lt;/a&gt;. (rename the script as&amp;nbsp;&lt;i&gt;jquery.validate.js&lt;/i&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;2. Insert the following script between the head HTML tags&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_lntk5chS4Ik/TA87B0Bou8I/AAAAAAAAA0U/eBZAI6gKz-0/s1600/Screen+shot+2010-06-09+at+PM+02.54.07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="322" src="http://1.bp.blogspot.com/_lntk5chS4Ik/TA87B0Bou8I/AAAAAAAAA0U/eBZAI6gKz-0/s400/Screen+shot+2010-06-09+at+PM+02.54.07.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;That's it. Done!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;i&gt;Do you need to write special code in the form section for jQuery to kick into effect?&lt;/i&gt;&lt;/b&gt; No.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Take a look at my form. There is no reference to jQuery at all.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TA88DoVHRcI/AAAAAAAAA0g/T1p4-buc7rs/s1600/Screen+shot+2010-06-09+at+PM+02.58.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TA88DoVHRcI/AAAAAAAAA0g/T1p4-buc7rs/s400/Screen+shot+2010-06-09+at+PM+02.58.44.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;The following is what you will see if there is an error.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TA88YESed4I/AAAAAAAAA0o/wLWx1N8F37k/s1600/Screen+shot+2010-06-09+at+PM+03.01.22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TA88YESed4I/AAAAAAAAA0o/wLWx1N8F37k/s400/Screen+shot+2010-06-09+at+PM+03.01.22.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: The tricky part for me is how to perform a form submission. Should be &lt;b&gt;&lt;i&gt;form.submit(); &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;and not&amp;nbsp;&lt;/span&gt;&lt;/span&gt;$("#myForm").submit();&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3723157275867690143-7833996270746720409?l=azlabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://azlabs.blogspot.com/feeds/7833996270746720409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://azlabs.blogspot.com/2010/06/jquery-should-be-easy-to-implement.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7833996270746720409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3723157275867690143/posts/default/7833996270746720409'/><link rel='alternate' type='text/html' href='http://azlabs.blogspot.com/2010/06/jquery-should-be-easy-to-implement.html' title='jQuery should be easy to implement'/><author><name>Chee Chong</name><uri>http://www.blogger.com/profile/10867256679200062722</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lntk5chS4Ik/TA8yvwvEsuI/AAAAAAAAA0E/2mJvzzBZclI/s72-c/Screen+shot+2010-06-09+at+PM+02.20.27.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3723157275867690143.post-8419147832670405111</id><published>2010-06-09T08:02:00.001+08:00</published><updated>2010-06-09T08:02:00.801+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun Access Manager'/><title type='text'>Sun Access Manager SSO and Passlogix ESSO - Part II</title><content type='html'>&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;In his environment, my customer has Sun Access Manager and Passlogix v-GO SSO in place.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_lntk5chS4Ik/TA3LPkrRppI/AAAAAAAAAz0/NTdmFI6fsso/s1600/SunSSO2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://3.bp.blogspot.com/_lntk5chS4Ik/TA3LPkrRppI/AAAAAAAAAz0/NTdmFI6fsso/s400/SunSSO2.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;There are 3 categories of applications:&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;1. Client-Server Applications&lt;/b&gt;&lt;i&gt;&amp;nbsp;(Legacy mainframe applications)&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;2. Non-Access Manager Protected Web Applications&lt;/b&gt;&amp;nbsp;&lt;i&gt;(Off-the-shelf web applications that cannot be customized for Sun Access Manager integration)&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;3. Access Manager Protected Web Applications&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;It's a large bank and there are many&amp;nbsp;back-end&amp;nbsp;applications. Pretty complex to adopt 2 different technology in 1 enterprise environment. However, this is just a interim solution.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;The larger picture is to slowly:&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;1. Convert the client-server applications to web-based applications&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;2. Discard off-the-shelf web applications and build own customized web-based applications&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;3. Standardize all SSO to utilize Sun Access Manager&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;If the client has SSO like Passlogix on PC, how does Access Manager interact with the client?&lt;/blockquote&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;I think I can better explain with the following diagram:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lntk5chS4Ik/TA3Tbnxu9RI/AAAAAAAAAz8/o48faivZAx4/s1600/SunSSO3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="326" src="http://4.bp.blogspot.com/_lntk5chS4Ik/TA3Tb
