<?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-7814469042984115284</id><updated>2012-02-02T05:34:42.964-08:00</updated><title type='text'>pathberiya.org</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-3703983508885501403</id><published>2012-02-02T05:03:00.000-08:00</published><updated>2012-02-02T05:34:42.979-08:00</updated><title type='text'>How to Configure OpenDJ with WSO2 Identity Server (WSO2IS)</title><content type='html'>This blog post explains how we can configure WSO2 Identity Server to connect with OpenDJ LDAP server. &lt;br /&gt;&lt;br /&gt;First lets try to install OpenDJ server and configure it.&lt;br /&gt;&lt;br /&gt;1. Download and Extract OpenDJ.zip file in to your file system. &lt;br /&gt;&lt;br /&gt;2. Go to root directory and run "&lt;i&gt;setup&lt;/i&gt;" script for configure the OpenDJ server.&lt;br /&gt;&lt;br /&gt;3. Configure OpenDJ according your configuration.&lt;br /&gt;&lt;br /&gt;Following are my sample configurations that i did&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/-M2yqpJOqCw0/TyqJTC-tfhI/AAAAAAAAAIo/bsEMyp5EzOA/s1600/z1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://2.bp.blogspot.com/-M2yqpJOqCw0/TyqJTC-tfhI/AAAAAAAAAIo/bsEMyp5EzOA/s400/z1.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/-lcl_QvX3Gjo/TyqJaeL260I/AAAAAAAAAI0/G27YUfd-hWw/s1600/z2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://4.bp.blogspot.com/-lcl_QvX3Gjo/TyqJaeL260I/AAAAAAAAAI0/G27YUfd-hWw/s400/z2.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://1.bp.blogspot.com/-3nB5QAvdHzs/TyqJfn-2wsI/AAAAAAAAAJA/uvME_rxZ6G0/s1600/z4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://1.bp.blogspot.com/-3nB5QAvdHzs/TyqJfn-2wsI/AAAAAAAAAJA/uvME_rxZ6G0/s400/z4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. After configurations, you can manage the server using control panel. For that run &lt;i&gt;"control-panel&lt;/i&gt;" script which can be found at bin directory &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/-HfhZQo5GnDU/TyqJk8-H8KI/AAAAAAAAAJM/rEeJTR1ctPo/s1600/z6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://3.bp.blogspot.com/-HfhZQo5GnDU/TyqJk8-H8KI/AAAAAAAAAJM/rEeJTR1ctPo/s400/z6.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5. Add some users in to your domain. In my sample, for &lt;i&gt;asela.com&lt;/i&gt; domain. &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/-hxkyZXbm32w/TyqJpDYMZWI/AAAAAAAAAJY/QkSTG7uQvPg/s1600/z9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://1.bp.blogspot.com/-hxkyZXbm32w/TyqJpDYMZWI/AAAAAAAAAJY/QkSTG7uQvPg/s400/z9.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now let see how we can connect to the OpenDJ user store using WSO2 Identity Server. &lt;br /&gt;&lt;br /&gt;6. &lt;b&gt;Download WSO2 Identity Server&lt;/b&gt; distribution from&lt;b&gt; &lt;a href="http://wso2.org/library/identity-server"&gt;here&lt;/a&gt;&lt;/b&gt; and &lt;b&gt;Extract&lt;/b&gt; it in to your file system.  Let call root directory as IS_HOME&lt;br /&gt;&lt;br /&gt;7. Open &lt;b&gt;user-mgt.xml &lt;/b&gt;file which can be found at &lt;b&gt;&amp;lt;IS_HOME&amp;gt;&lt;/b&gt;&lt;is_home&gt;&lt;b&gt;/repository/conf  &lt;/b&gt;directory&lt;br /&gt;&lt;br /&gt;8. &lt;b&gt;Comment the default&lt;/b&gt; user store manager configuration&amp;nbsp;&lt;/is_home&gt;&lt;br /&gt;&lt;is_home&gt;&lt;/is_home&gt;&lt;br /&gt;&lt;is_home&gt;&amp;lt;!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ApacheDSUserStoreManager"&amp;gt;&lt;br /&gt;&amp;lt;/UserStoreManager--&amp;gt;&lt;br /&gt;&lt;br /&gt;9. &lt;b&gt;Uncomment LDAPUserStoreManager  configuration&lt;/b&gt; and change it according to your OpenDJ configurations. Following is the sample configuration that is relevanted to my OpenDJ that i used above. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- If product is using an external LDAP as the user store in read only mode, use following user manager --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;UserStoreManager class="org.wso2.carbon.user.core.ldap.LDAPUserStoreManager"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="ReadOnly"&amp;gt;true&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="MaxUserNameListLength"&amp;gt;100&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="ConnectionURL"&amp;gt;&lt;b&gt;ldap://localhost:1389&lt;/b&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="ConnectionName"&amp;gt;&lt;b&gt;cn=TestServer&lt;/b&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="ConnectionPassword"&amp;gt;&lt;b&gt;test123&lt;/b&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="UserSearchBase"&amp;gt;&lt;b&gt;dc=asela,dc=com&lt;/b&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="UserNameListFilter"&amp;gt;(objectClass=person)&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="UserNameAttribute"&amp;gt;&lt;b&gt;cn&lt;/b&gt;&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="GroupSearchBase"&amp;gt;ou=system&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="GroupNameListFilter"&amp;gt;(objectClass=groupOfNames)&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="GroupNameAttribute"&amp;gt;cn&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="MembershipAttribute"&amp;gt;member&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="UserRolesCacheEnabled"&amp;gt;true&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Property name="ReplaceEscapeCharactersAtUserLogin"&amp;gt;true&amp;lt;/Property&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/UserStoreManager&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10. &lt;b&gt;Configure admin user name&lt;/b&gt;.  Then admin user of&amp;nbsp; the WSO2 Identity Server must be a user in that OpenDJ search base. According to the my sample, i have configured the admin user as a user in "&lt;i&gt;dc=asela,dc=com"&lt;/i&gt; UserSearchBase.   &lt;br /&gt;&lt;adminuser&gt;&lt;br /&gt;&lt;username&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AdminUser&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;UserName&amp;gt;&lt;b&gt;bob&lt;/b&gt;&amp;lt;/UserName&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Password&amp;gt;&amp;lt;/Password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/AdminUser&amp;gt;&lt;/username&gt;&lt;br /&gt;&lt;/adminuser&gt;&lt;br /&gt;If you are hoping to read groups from the OpenDJ, Please configure it in the LDAPUserStoreManager  configurations and also configure one group as an admin role of the WSO2 Identity Server. &lt;br /&gt;&lt;br /&gt;Please note that user who is configured as admin must be in the admin role. &lt;br /&gt;&lt;br /&gt;11.&lt;b&gt;Start Identity &lt;/b&gt;Server by running &lt;i&gt;" wso2server" &lt;/i&gt;script which can be found at &lt;is_home&gt;&lt;b&gt;&amp;lt;IS_HOME&amp;gt;/bin &lt;/b&gt;directory.&lt;/is_home&gt;&lt;/is_home&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-3703983508885501403?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/3703983508885501403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2012/02/how-to-configure-opendj-with-wso2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/3703983508885501403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/3703983508885501403'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2012/02/how-to-configure-opendj-with-wso2.html' title='How to Configure OpenDJ with WSO2 Identity Server (WSO2IS)'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-M2yqpJOqCw0/TyqJTC-tfhI/AAAAAAAAAIo/bsEMyp5EzOA/s72-c/z1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-7759975595257312354</id><published>2011-02-15T12:04:00.000-08:00</published><updated>2011-02-15T12:38:27.683-08:00</updated><title type='text'>WSO2Identity Server as OpenID consumer</title><content type='html'>&lt;span style="font-size: small;"&gt;WSO2Identity Server can be act as both OpenId provider and OpenId consumer. My previous blog post described how we can use&amp;nbsp; WSO2Identity Server as an OpenId provider. Today lets see how we can sign up to the WSO2Identity Server using external OpenId (myopenid).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;1.&lt;/b&gt;&lt;b&gt;  Download&lt;/b&gt; latest versions of WSO2Identity from &lt;b&gt;&lt;a href="http://wso2.org/"&gt;here&lt;/a&gt;&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;2.  E&lt;/b&gt;&lt;b&gt;xtract&lt;/b&gt; WSO2Identity&amp;nbsp; zip file in to a directory  in your file system. Lets call&amp;nbsp; as &lt;b&gt;IS_HOME&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;3. S&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;tart &lt;/b&gt;WSO2Identity by  running&amp;nbsp; &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh  (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat  (in windows)&amp;nbsp; which can be found in &lt;b&gt;IS&lt;span id="SPELLING_ERROR_11"&gt;_&lt;/span&gt;HOME/bin&lt;/b&gt;  directory.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;4.&lt;/b&gt;&lt;b&gt; Go to&lt;/b&gt; WSO2IS Management  console by pointing your browser to https://localhost:9443/carbon/&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;5. Go to&lt;/b&gt; the InfoCard/OpenID Sign-in Page and provide your OpenId (I have given my openId which is&amp;nbsp; http://pathberiya.myopenid.com)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://3.bp.blogspot.com/-i_XSOXkVBnU/TVrbmtsjc1I/AAAAAAAAAIM/EblATOD3kMA/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://3.bp.blogspot.com/-i_XSOXkVBnU/TVrbmtsjc1I/AAAAAAAAAIM/EblATOD3kMA/s400/4.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;6. Provide &lt;/b&gt;your password and select your persona to associate&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://3.bp.blogspot.com/-7K1TUTf_Idc/TVrbqSsSyDI/AAAAAAAAAIQ/dzTZf8MBWiQ/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://3.bp.blogspot.com/-7K1TUTf_Idc/TVrbqSsSyDI/AAAAAAAAAIQ/dzTZf8MBWiQ/s400/5.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/-zIc4RxToHLs/TVrbw3DtTHI/AAAAAAAAAIU/m4ZEQV97sAk/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://2.bp.blogspot.com/-zIc4RxToHLs/TVrbw3DtTHI/AAAAAAAAAIU/m4ZEQV97sAk/s400/7.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;7. Sign up&lt;/b&gt; to the WSO2Identity server (As I am a new user)&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/-t2QNn4pJp1I/TVrb0lgBMbI/AAAAAAAAAIY/Kaic5GXdbEc/s1600/9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://2.bp.blogspot.com/-t2QNn4pJp1I/TVrb0lgBMbI/AAAAAAAAAIY/Kaic5GXdbEc/s400/9.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/-4klDunH5Tcg/TVrb4WD2YRI/AAAAAAAAAIc/x9Sikp-cbYM/s1600/10.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://2.bp.blogspot.com/-4klDunH5Tcg/TVrb4WD2YRI/AAAAAAAAAIc/x9Sikp-cbYM/s400/10.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/-0Za7GB-AGmo/TVrb8MApi6I/AAAAAAAAAIg/Rkis2kvWMFw/s1600/11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://4.bp.blogspot.com/-0Za7GB-AGmo/TVrb8MApi6I/AAAAAAAAAIg/Rkis2kvWMFw/s400/11.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/-0Za7GB-AGmo/TVrb8MApi6I/AAAAAAAAAIg/Rkis2kvWMFw/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;8. Use&lt;/b&gt; associated openId to sign-in to the WSO2Identiry server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-7759975595257312354?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/7759975595257312354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2011/02/wso2identity-server-as-openid-consumer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7759975595257312354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7759975595257312354'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2011/02/wso2identity-server-as-openid-consumer.html' title='WSO2Identity Server as OpenID consumer'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-i_XSOXkVBnU/TVrbmtsjc1I/AAAAAAAAAIM/EblATOD3kMA/s72-c/4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-4265757198813397230</id><published>2011-02-15T10:51:00.000-08:00</published><updated>2011-02-15T12:52:24.407-08:00</updated><title type='text'>2-legged OAuth for securing a RESTful service</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;This is step by step guide to secure a RESTful service with 2-legged OAuth using WSO2Identity Server and WSO2ESB.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;1.&lt;/b&gt;&lt;b&gt; Download&lt;/b&gt; latest versions of WSO2Identity server and WSO2ESB from &lt;b&gt;&lt;a href="http://wso2.org/"&gt;here&lt;/a&gt;&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;2. E&lt;/b&gt;&lt;b&gt;xtract&lt;/b&gt; WSO2Identity and WSO2ESB zip files in to a directory in your file system. Lets call them as &lt;b&gt;IS_HOME&lt;/b&gt; and &lt;b&gt;ESB_HOM&lt;/b&gt;E respectively&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt; 3. Start &lt;/b&gt;WSO2Identity and WSO2ESB by running&amp;nbsp; &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh  (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows)&amp;nbsp; which can be found in &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;IS&lt;span id="SPELLING_ERROR_11"&gt;_&lt;/span&gt;HOME/bin and &lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;ESB&lt;span id="SPELLING_ERROR_11"&gt;_&lt;/span&gt;HOME/bin&lt;/b&gt; directory respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;If&amp;nbsp; Both servers are running in the localhost, You should change the default ports.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;Here I changed the WSO2ESB https port to 9445 and&amp;nbsp; http port to 9765 (default 9443 and 9763 respectively) by configuring &lt;b&gt;mgt-transport.xml&lt;/b&gt;&amp;nbsp; which can be found in &lt;b&gt;&lt;span id="SPELLING_ERROR_11"&gt;ESB_&lt;/span&gt;HOME/repository/conf&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;4.&lt;/b&gt;&lt;b&gt; Go to&lt;/b&gt; WSO2IS Management console by pointing your browser to https://localhost:9443/carbon/&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;5. &lt;/b&gt;&lt;b&gt;Register&lt;/b&gt; a User with WSO2Identity Server by providing User name and password.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/-DKUCWE3w_Ys/TVrMqoqq3FI/AAAAAAAAAIE/7wqIB7uzkYA/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://1.bp.blogspot.com/-DKUCWE3w_Ys/TVrMqoqq3FI/AAAAAAAAAIE/7wqIB7uzkYA/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;6.&lt;/b&gt;&lt;b&gt; Download&lt;/b&gt; sample OAuth client source code from following svn location&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="https://svn.wso2.org/repos/wso2/trunk/carbon/components/identity/org.wso2.carbon.identity.samples.oauth"&gt;https://svn.wso2.org/repos/wso2/trunk/carbon/components/identity/org.wso2.carbon.identity.samples.oauth &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;You can build the sample using maven (&lt;b&gt;mvn clean install&lt;/b&gt;) or add the jars in &lt;b&gt;IS_HOME/repository/components/plugins&lt;/b&gt; directory to sample project class path.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;7.&lt;/b&gt; &lt;b&gt;Go to&lt;/b&gt; ESB Management console by pointing your browser to   https://localhost:9445/carbon/&amp;nbsp; and sign-in to it by providing admin user name and password.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;8. Create&lt;/b&gt; a proxy service in WSO2ESB by adding following configuration in to the service bus configuration which can be found under &lt;b&gt;Manage -&amp;gt;Service Bus -&amp;gt; Source View&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/-ylIdfg6bhoY/TVrKqn9-0II/AAAAAAAAAHw/BhP7LnJ8r_8/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://4.bp.blogspot.com/-ylIdfg6bhoY/TVrKqn9-0II/AAAAAAAAAHw/BhP7LnJ8r_8/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;(or simply update the synapse configuration of ESB with the content in  org.wso2.carbon.identity.samples.oauth/src/main/resources/synapse.xml)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;proxy name="OAuthProxy" startonload="true" trace="disable" transports="https http"&gt;&lt;br /&gt;&lt;/proxy&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;proxy name="OAuthProxy" transports="https http"  startOnLoad="true" trace="disable"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;oauthService  remoteServiceUrl="https://localhost:9443/services/"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;address  uri="http://localhost:8280/services/echo" format="rest"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;send/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/proxy&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp; &lt;outsequence&gt;&lt;send&gt;&lt;/send&gt;&lt;/outsequence&gt;Please  note that remoteServiceUrl contains the Host name and the port that  WSO2Identity server is running.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;proxy name="OAuthProxy" startonload="true" trace="disable" transports="https http"&gt; &lt;/proxy&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;proxy name="OAuthProxy" startonload="true" trace="disable" transports="https http"&gt;&lt;b&gt;9. Run&lt;/b&gt; sample Client........ Make sure to update variables&amp;nbsp; &lt;/proxy&gt;&lt;/span&gt;IDENTITY_SERVER, ESB_SERVER, USER_NAME, PASSWORD according to your configurations&lt;/div&gt;&lt;address format="rest" style="font-family: inherit;" uri="http://localhost:9764/services/echo"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/address&gt;&lt;address format="rest" style="font-family: inherit;" uri="http://localhost:9764/services/echo"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/address&gt;&lt;address format="rest" style="font-family: inherit;" uri="http://localhost:9764/services/echo"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;Lets briefly go through the scenario and identity what is happening here  &lt;/span&gt;   &lt;/address&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Register user with WSO2Identity Server.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Consumer secret is registered with WSO2Identity Server&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. Invoke AuthenticationAdmin&amp;nbsp; service and user is authenticated with WSO2ISentity server&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Invoke OAuthAdminService service and register consumer secret.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://1.bp.blogspot.com/-qyoMYTFtaNw/TVrMmg7x43I/AAAAAAAAAIA/_dFNQ5GwTEk/s1600/OAuth2.1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="165" src="http://1.bp.blogspot.com/-qyoMYTFtaNw/TVrMmg7x43I/AAAAAAAAAIA/_dFNQ5GwTEk/s320/OAuth2.1.png" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;Consumer key  would be the User Name of the User&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Generate  OAuth Authorization header and Sign it with OAuth Consumer Secret &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Invoke the proxy service which is deployed in ESB&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;OAuth mediator in ESB invoke the OAuthService&amp;nbsp; in WSO2Identity Server  to verify that consumer is valid.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Verify consumer  key (Valid User ?) and Verify oauth_signature value using consumer  secret&amp;nbsp; which has been registered by the user. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;If Signature verification is done, request is  Authenticated, and send it to the RESTful service&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; font-family: inherit; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://2.bp.blogspot.com/-WLStYshBlgo/TVrM8L4U5HI/AAAAAAAAAII/MnO6ZL2T9FY/s1600/OAuth1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-WLStYshBlgo/TVrM8L4U5HI/AAAAAAAAAII/MnO6ZL2T9FY/s400/OAuth1.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-4265757198813397230?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/4265757198813397230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2011/02/2-legged-oauth-to-secure-restful.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/4265757198813397230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/4265757198813397230'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2011/02/2-legged-oauth-to-secure-restful.html' title='2-legged OAuth for securing a RESTful service'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-DKUCWE3w_Ys/TVrMqoqq3FI/AAAAAAAAAIE/7wqIB7uzkYA/s72-c/1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-9034275344509767743</id><published>2011-02-03T06:17:00.000-08:00</published><updated>2011-02-23T20:17:10.743-08:00</updated><title type='text'>How to get the operation list from a given WSDL Uri</title><content type='html'>&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Today i needed to list the operation of a given WSDL uri. I went through the axis2 source code.. and&amp;nbsp; just found some code block in the CodeGenerationEngine class. Following is the java code that modified.. You want to have the axis2 and wsdl4j jars in your class path...&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.AxisFault;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.description.AxisOperation;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.description.AxisService;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import org.apache.axis2.wsdl.codegen.CodeGenerationException;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import java.util.Iterator;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import javax.wsdl.Definition;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;import javax.wsdl.WSDLException;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;public class WSDLToOperation {&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String args[]) throws CodeGenerationException, WSDLException, AxisFault {&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String wsdlUri = "http://10.100.1.162:9764/services/echo?wsdl";&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CodeGenConfiguration codeGenConfiguration = null;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CodeGenerationEngine codeGenerationEngine&amp;nbsp; = new CodeGenerationEngine(codeGenConfiguration);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Definition wsdl4jDef = codeGenerationEngine.readInTheWSDLFile(wsdlUri);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WSDL11ToAxisServiceBuilder wsdl11ToAxisServiceBuilder = new&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WSDL11ToAxisServiceBuilder(wsdl4jDef, null, null, false);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AxisService axisService = wsdl11ToAxisServiceBuilder.populateService();&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator iterator = axisService.getOperations();&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (iterator.hasNext()) {&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AxisOperation operation&amp;nbsp; =&amp;nbsp; (AxisOperation) iterator.next();&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(operation.getName().getLocalPart());&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-9034275344509767743?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/9034275344509767743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2011/02/how-to-get-operation-list-from-given.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/9034275344509767743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/9034275344509767743'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2011/02/how-to-get-operation-list-from-given.html' title='How to get the operation list from a given WSDL Uri'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-7183347538770123183</id><published>2010-08-12T02:27:00.000-07:00</published><updated>2010-08-27T10:53:50.235-07:00</updated><title type='text'>Sign-up for Liferay portal with OpenID provided By WSO2Identity Server</title><content type='html'>Here i am going to describe the steps how we can configure to use openidprovided by identity server to sign-up with Liferay 4.4.2 portal &lt;br /&gt;&lt;br /&gt;&lt;b&gt;1&lt;/b&gt;. First&amp;nbsp; &lt;b&gt;download WSO2Identity&lt;/b&gt; server from &lt;b&gt;&lt;a href="http://builder.wso2.org/%7Ecarbon/releases/carbon/3.0.1/Alpha3/"&gt;here&lt;/a&gt;&lt;/b&gt; (Alpha3 Build of latest version) and you can &lt;b&gt;extract&lt;/b&gt; in to a directory in your file system. Lets call as CARBON_HOME&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2&lt;/b&gt;. Then configure host name (assume change it to "wso2is") First configure following parameters in &lt;b&gt;carbon.xml&lt;/b&gt; which can be found in &lt;b&gt;CARBON_HOME/conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;lt;ServerURL&amp;gt;https://wso2is:${carbon.management.port}${carbon.context}/services/&amp;lt;/ServerURL&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;lt;HostName&amp;gt;wso2is&amp;lt;/HostName&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;configure following parameters in &lt;b&gt;identity.xml&lt;/b&gt; which can be found in same location&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OpenIDServerUrl&amp;gt;https://wso2is:9443/openidserver&amp;lt;/OpenIDServerUrl&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OpenIDUserPattern&amp;gt;https://wso2is:9443/openid/&amp;lt;/OpenIDUserPattern&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;if you are running in local machine, make sure to add your new host name in to the &lt;b&gt;hosts file&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. &lt;/b&gt;You can&lt;b&gt; start Identity server&lt;/b&gt; by running&amp;nbsp; &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows)&amp;nbsp; file in the &lt;b&gt;&lt;span id="SPELLING_ERROR_11"&gt;CARBON_&lt;/span&gt;HOME/bin&lt;/b&gt; directory&lt;br /&gt;&lt;br /&gt;openid url of default admin will look like&lt;b&gt;&amp;nbsp; https://wso2is:9443/openid/admin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4&lt;/b&gt;. &lt;b&gt;Import&lt;/b&gt; Identity server &lt;b&gt;public certificate to the java cacerts which is the trust-store for Liferay&lt;/b&gt; (This step, if you use default keystore, wso2carbon.jks for identity server or any self sign key store)&lt;br /&gt;&lt;br /&gt;Liferay use &lt;b&gt;java cacerts&lt;/b&gt; as its trust-store. But &lt;b&gt;wso2carbon.jks contains self signed&lt;/b&gt; &lt;b&gt;certificate&lt;/b&gt;. So public key should be &lt;b&gt;imported&lt;/b&gt; to the cacerts that is used by Liferay. Then Liferay can trust the Openid provided by wso2identity server.&lt;br /&gt;&lt;br /&gt;first export wso2carbon cert from wso2carbon.jks which can be found in &lt;b&gt;CARBON_HOME/resources/security&lt;/b&gt; directory. sample  keytool command&lt;br /&gt;&lt;br /&gt;&amp;gt; keytool -export -keystore wso2carbon.jks -file carbon.cert -alias localhost -keypass wso2carbon&lt;br /&gt;&lt;br /&gt;Then import it to cacerts in &lt;b&gt;JAVA_HOME/jre/lib/security&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;gt; keytool -import -keystore cacerts -file carbon.cert -alias carbon -keypass changeit&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5&lt;/b&gt;. &lt;b&gt;Download&lt;/b&gt; latest version of &lt;b&gt;Liferay portal&lt;/b&gt; &lt;b&gt;4.4.2&lt;/b&gt;&amp;nbsp; from &lt;b&gt;&lt;a href="http://sourceforge.net/projects/lportal/files/Liferay%20Portal"&gt;here&lt;/a&gt;&lt;/b&gt; and you can &lt;b&gt;extract&lt;/b&gt; in to a directory in your file system. Lets call as LIFERAY_HOME&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6&lt;/b&gt;. &lt;b&gt;Set&lt;/b&gt; CATALINA_HOME =LIFERAY_HOME/tomcat_dir&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Start&lt;/b&gt; Liferay portal by running&amp;nbsp; catalina.sh run (in unix) or catalina.bat file in CATALINA_HOME/bin directory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8&lt;/b&gt;.  Add &lt;b&gt;Full Name&lt;/b&gt; as a default attribute in identity user profiles and Fill the user profile&lt;br /&gt;&lt;br /&gt;In order to perform the registration (sign-up)in Liferay using OpenID, when userfirst logins with an OpenID, Liferay asks some information fromWSO2Identity Server (Openidprovider) about the user. The provider must be able to provide thisinformation through OpenID protocol extensions (Identity Server haveimplemented the Simple Registration Extension protocol).&amp;nbsp; Here &lt;b&gt;FullName and Email &lt;/b&gt;attributes are retrieved from identity server. So thesetwo should be configure in user profiles. &lt;br /&gt;&lt;br /&gt;--Full name is not supported by default. so first you need to update the claim mapping. Goto Claim management -&amp;gt;&amp;nbsp; &lt;a href="https://localhost:9443/carbon/claim-mgt/claim-view.jsp?store=Internal&amp;amp;dialect=http://wso2.org/claims"&gt;http://wso2.org/claims&lt;/a&gt; claim dialect -&amp;gt; full name claim mapping and tick on "Supported by Default" and update.&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://4.bp.blogspot.com/_x2yN9Cvtyec/THf3wT615sI/AAAAAAAAAG4/CENXJYQD6ik/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/THf3wT615sI/AAAAAAAAAG4/CENXJYQD6ik/s400/3.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;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_x2yN9Cvtyec/THf4oZu6A1I/AAAAAAAAAHA/Elbr9x2hURE/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/THf4oZu6A1I/AAAAAAAAAHA/Elbr9x2hURE/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;--Then Goto My profile and fill default or you can add a new profile.&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/_x2yN9Cvtyec/THf4wS7zwhI/AAAAAAAAAHI/78SftlRJmMw/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/THf4wS7zwhI/AAAAAAAAAHI/78SftlRJmMw/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;b&gt;9. &lt;/b&gt;Now try to &lt;b&gt;sign-up by providing your openid&lt;/b&gt; , https://wso2is:9443/openid/admin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-7183347538770123183?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/7183347538770123183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/08/sign-up-with-openid-providered-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7183347538770123183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7183347538770123183'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/08/sign-up-with-openid-providered-by.html' title='Sign-up for Liferay portal with OpenID provided By WSO2Identity Server'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_x2yN9Cvtyec/THf3wT615sI/AAAAAAAAAG4/CENXJYQD6ik/s72-c/3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-6672988720812714977</id><published>2010-07-28T04:17:00.000-07:00</published><updated>2010-07-28T04:17:06.635-07:00</updated><title type='text'>WSO2 Identity Server as OpenID Provider</title><content type='html'>&lt;br /&gt;I am going to explain&amp;nbsp; how we can use Openid issued by WSO2Identity server in an actual environment. Here I am using &lt;b&gt;Liferay portal&lt;/b&gt; as Openid consumer and assume that Liferay portal and Identity server have been setup in different hosts in a LAN.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1&lt;/b&gt;. First&amp;nbsp; &lt;b&gt;download WSO2Identity&lt;/b&gt; server from &lt;b&gt;&lt;a href="http://wso2.org/downloads/identity"&gt;here&lt;/a&gt;&lt;/b&gt; and you can &lt;b&gt;extract&lt;/b&gt; in to a directory in your file system. Lets call as CARBON_HOME&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. &lt;/b&gt;You can&lt;b&gt; start Identity server&lt;/b&gt; by running&amp;nbsp; &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows)&amp;nbsp; file in the &lt;b&gt;&lt;span id="SPELLING_ERROR_11"&gt;CARBON_&lt;/span&gt;HOME/bin&lt;/b&gt; directory&lt;br /&gt;&lt;br /&gt;Identityserver will be started with default configuration. if you examineopenid url of&amp;nbsp; a user(default admin username is admin) in identityserver. It will look like&lt;br /&gt;&lt;br /&gt;&lt;b&gt;https://localhost:9443/openid/admin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;But this openid url can not be accessed by other hosts in your network. So Lets change our host name.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3&lt;/b&gt;. Lets assume we want to configure host name as "wso2identity" (or any ip address).&amp;nbsp; First configure following parameters in &lt;b&gt;carbon.xml&lt;/b&gt; which can be found in &lt;b&gt;CARBON_HOME/conf&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;lt;ServerURL&amp;gt;https://wso2identity:${carbon.management.port}${carbon.context}/services/&amp;lt;/ServerURL&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;lt;HostName&amp;gt;wso2identity&amp;lt;/HostName&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;configure following parameters in &lt;b&gt;identity.xml&lt;/b&gt; which can be found in same location&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OpenIDServerUrl&amp;gt;https://wso2identity:9443/openidserver&amp;lt;/OpenIDServerUrl&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;OpenIDUserPattern&amp;gt;https://wso2identity:9443/openid/&amp;lt;/OpenIDUserPattern&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4&lt;/b&gt;. &lt;b&gt;Restart identity server&lt;/b&gt;. Now openid url&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;https://wso2identity:9443/openid/admin &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5&lt;/b&gt;. &lt;b&gt;Download&lt;/b&gt; latest version of &lt;b&gt;Liferay portal&lt;/b&gt; from &lt;b&gt;&lt;a href="http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.0.4/liferay-portal-tomcat-6.0.4.zip/download"&gt;here&lt;/a&gt;&lt;/b&gt; and you can &lt;b&gt;extract&lt;/b&gt; in to a directory in your file system. Lets call as LIFERAY_HOME&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6&lt;/b&gt;. &lt;b&gt;Set&lt;/b&gt; CATALINA_HOME =LIFERAY_HOME/tomcat_dir&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Start&lt;/b&gt; Liferay portal by running&amp;nbsp; catalina.sh run (in unix) or calalina.bat file in CATALINA_HOME/bin directory.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8&lt;/b&gt;. &lt;b&gt;Create a user account&lt;/b&gt; in Liferay and &lt;b&gt;configure an openid&amp;nbsp;&lt;/b&gt; that is issued by identity server&amp;nbsp; (https://wso2identity:9443/openid/admin)&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/_x2yN9Cvtyec/TE-s8m4zLhI/AAAAAAAAAGI/fmw3REKKaxY/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/TE-s8m4zLhI/AAAAAAAAAGI/fmw3REKKaxY/s400/1.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;a href="http://3.bp.blogspot.com/_x2yN9Cvtyec/TE-s_EbtmuI/AAAAAAAAAGQ/yE6JsfjG2rY/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/TE-s_EbtmuI/AAAAAAAAAGQ/yE6JsfjG2rY/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;9&lt;/b&gt;. Now try to &lt;b&gt;sign in by providing your openid&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/_x2yN9Cvtyec/TE-tAVdOHcI/AAAAAAAAAGY/0MgAZ-8_ILA/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/TE-tAVdOHcI/AAAAAAAAAGY/0MgAZ-8_ILA/s400/3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;10&lt;/b&gt;. You will probably get following &lt;b&gt;error message&lt;/b&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; Because there are one configuration to do, if we use default keystore, wso2carbon.jks for identity server.&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/_x2yN9Cvtyec/TE-tCYBhgUI/AAAAAAAAAGg/vdv5XxGo05k/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/TE-tCYBhgUI/AAAAAAAAAGg/vdv5XxGo05k/s400/5.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Liferay use &lt;b&gt;java cacerts&lt;/b&gt; as its trust-store. But &lt;b&gt;wso2carbon.jks contains self signed&lt;/b&gt; &lt;b&gt;certificate&lt;/b&gt;. So public key should be &lt;b&gt;imported&lt;/b&gt; to the cacerts that is used by Liferay. Then Liferay can trust the Openid provided by wso2identity server.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11&lt;/b&gt;. &lt;b&gt;Import&lt;/b&gt; Identity server &lt;b&gt;public certificate to the cacerts &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;first export wso2carbon cert from wso2carbon.jks which can be found in &lt;b&gt;CARBON_HOME/resources/security&lt;/b&gt; directory. sample  keytool command&lt;br /&gt;&lt;br /&gt;&amp;gt; keytool -export -keystore wso2carbon.jks -file carbon.cert -alias localhost -keypass wso2carbon&lt;br /&gt;&lt;br /&gt;Then import it to cacerts in &lt;b&gt;JAVA_HOME/jre/lib/security&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;gt; keytool -import -keystore cacerts -file carbon.cert -alias carbon -keypass changeit&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12&lt;/b&gt;. Then restart Liferay portal. Now you can sign in to Liferay portal using&amp;nbsp; wso2identity server's Openid.........!!!&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/7814469042984115284-6672988720812714977?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/6672988720812714977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/07/wso2-identity-server-as-openid-provider.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/6672988720812714977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/6672988720812714977'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/07/wso2-identity-server-as-openid-provider.html' title='WSO2 Identity Server as OpenID Provider'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_x2yN9Cvtyec/TE-s8m4zLhI/AAAAAAAAAGI/fmw3REKKaxY/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-1306514510077028882</id><published>2010-07-25T11:40:00.000-07:00</published><updated>2010-07-25T11:48:59.087-07:00</updated><title type='text'>Apache Dircetory Studio as Your LDAP User Store</title><content type='html'>&lt;br /&gt;1.&amp;nbsp; You can downlaod Apache Dirctory Stido from &lt;b&gt;&lt;a href="http://directory.apache.org/studio/downloads.html"&gt;here&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;2. Then you can &lt;b&gt;extract&lt;/b&gt; in to a directory in your file system&lt;br /&gt;&lt;br /&gt;3. Start Apache Directory Studio by &lt;b&gt;running executable file called ApacheDirectoryStudio&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;i&gt;Lets &lt;b&gt;create a LDAP Server&lt;/b&gt;.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. If you can not see the ApacheDS server window, First you must &lt;b&gt;view it&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Window -&amp;gt; Show View -&amp;gt; Other -&amp;gt; Select ApacheDS Server&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/_x2yN9Cvtyec/TEyDst-oh4I/AAAAAAAAAFI/dAMU46w3OWI/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/TEyDst-oh4I/AAAAAAAAAFI/dAMU46w3OWI/s400/1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now you can see the Server management window.&lt;br /&gt;&lt;br /&gt;5. Then Lets create a new server. &lt;b&gt;Click on new server icon (ctrl+E)&lt;/b&gt; and you must only&lt;b&gt; enter a name &lt;/b&gt;for the server and New server will be created with default configurations&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/_x2yN9Cvtyec/TEyDuj6c-RI/AAAAAAAAAFQ/86RH3E3Rrp0/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/TEyDuj6c-RI/AAAAAAAAAFQ/86RH3E3Rrp0/s400/2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;By double-clicking you can view the&lt;b&gt; configuration file (server.xml) &lt;/b&gt;of created server. Your can configure it as your options. But Here i am continuing with default configuration&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/_x2yN9Cvtyec/TEyDyhgzwdI/AAAAAAAAAFY/hUYy5Ndwkx4/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/TEyDyhgzwdI/AAAAAAAAAFY/hUYy5Ndwkx4/s400/3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span id="goog_101799118"&gt;&lt;/span&gt;&lt;span id="goog_101799119"&gt;&lt;/span&gt;&lt;br /&gt;6. Now just click on &lt;b&gt;Run icon (ctr+R), Your server will be started.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;i&gt;Now we are going to create a &lt;b&gt;connection to the running LDAP server to browse it.&lt;/b&gt;&amp;nbsp; (You can create connections with almost any LDAP server)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. LDAP -&amp;gt; New Connection ,&amp;nbsp; New LDAP connection wizard will be promoted.&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/_x2yN9Cvtyec/TEyD25KdAdI/AAAAAAAAAFg/ZBzKC2GLn0I/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/TEyD25KdAdI/AAAAAAAAAFg/ZBzKC2GLn0I/s400/11.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span id="goog_101799124"&gt;&lt;/span&gt;&lt;span id="goog_101799125"&gt;&lt;/span&gt;&lt;br /&gt;8. Configure Network parameters&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Connection Name&lt;/b&gt;&amp;nbsp; - Any name you like&lt;br /&gt;&lt;b&gt;Host Name&lt;/b&gt;&amp;nbsp; - Host name of your LDAP server is running. Here LDAP server is also in within same machine. So localhost&lt;br /&gt;&lt;b&gt;Port &lt;/b&gt;- LDAP server running port.&amp;nbsp; Here 10386, default port or which has configured in server.xml file&lt;br /&gt;&lt;b&gt;Encryption Method&lt;/b&gt; - if you want&amp;nbsp; to secure the connection to LDAP server, use SSL. Also make sure to change user Port according ldap and ldaps&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/_x2yN9Cvtyec/TEyD7NXhecI/AAAAAAAAAFo/QSjGkknV44c/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/TEyD7NXhecI/AAAAAAAAAFo/QSjGkknV44c/s400/12.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;9. Configure Authentication&amp;nbsp; parameters&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Authentication method&lt;/b&gt;&amp;nbsp; - You can select simple authentication , advance authentication method or no authentication, according what you have already configured in server.xml Here we must use the simple authentication. &lt;br /&gt;&lt;b&gt;Bind DN or User&lt;/b&gt;&amp;nbsp; - &amp;nbsp; uid=admin ,ou =system&lt;br /&gt;&lt;b&gt;Bind password&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - secret&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/_x2yN9Cvtyec/TEyD-0n4HoI/AAAAAAAAAFw/TWu0CuQuJnk/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/TEyD-0n4HoI/AAAAAAAAAFw/TWu0CuQuJnk/s400/13.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;when new LDAP server is created, by default, admin user is created with above DN and password. If LDAP server&lt;b&gt; already contain any users, you can use any DN that you want&lt;/b&gt;.&amp;nbsp; Browser option and edit option are kept as defaults and lets finished it. &lt;br /&gt;&lt;br /&gt;10. Now open your connection by clicking &lt;b&gt;open connection icon&lt;/b&gt; in your connection browser.&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/_x2yN9Cvtyec/TEyEDnjrnoI/AAAAAAAAAGA/hIKxJYA8vdU/s1600/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/TEyEDnjrnoI/AAAAAAAAAGA/hIKxJYA8vdU/s400/15.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;11. Then you can view your &lt;b&gt;LDAP Browser by&lt;/b&gt; &lt;b&gt;double clicking&lt;/b&gt; on your connection and &lt;b&gt;display the tree of your LDAP Server&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Now you are able to create, delete and modify your entities in LDAP server....!!!&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/7814469042984115284-1306514510077028882?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/1306514510077028882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/07/apache-dircetory-stdio-as-your-ldap.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1306514510077028882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1306514510077028882'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/07/apache-dircetory-stdio-as-your-ldap.html' title='Apache Dircetory Studio as Your LDAP User Store'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x2yN9Cvtyec/TEyDst-oh4I/AAAAAAAAAFI/dAMU46w3OWI/s72-c/1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-1531337407660923111</id><published>2010-07-01T04:26:00.000-07:00</published><updated>2010-07-04T21:49:26.702-07:00</updated><title type='text'>SSL profiles in WSO2 ESB</title><content type='html'>&lt;br /&gt;&lt;b&gt;"&lt;/b&gt;&lt;b&gt;SSL profiles"&lt;/b&gt; is new feature which was introduced in &lt;b&gt;WSO2 ESB 3.0.0. &lt;/b&gt;Using SSL profiles WSO2 ESB can be configured&amp;nbsp; to communicate with &lt;b&gt;SSL&lt;/b&gt; and &lt;b&gt;Mutual SSL&lt;/b&gt; enabled target servers.&amp;nbsp; Lets see how to configure it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. First, You can &lt;b&gt;download WSO2 ESB 3.0.0&lt;/b&gt; for &lt;a href="http://www.wso2.org/esb"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. then you can extract in to a directory in your file system. Lets call as ESB_HOME&lt;br /&gt;&lt;br /&gt;2. Then define the appropriate &lt;b&gt;SSL profiles under the HTTPS transport sender configuration&lt;/b&gt;, in the &lt;b&gt;axis2.xml&lt;/b&gt; file which can be found in &lt;b&gt;ESB_HOME/repository/conf&lt;/b&gt; .&lt;br /&gt;&lt;br /&gt;Following shows the example configuration i am going to use.&lt;br /&gt;Here, I have used localhost:9444 server for SSL communication and localhost:9445 for Mutual SSL.&amp;nbsp; As you can see, it &lt;b&gt;consists of a keystore-truststore pair&lt;/b&gt;. A &lt;b&gt;single profile can be associated with one or more target servers&lt;/b&gt;. So you can define more than one target servers under one profile. A target server is identified by its hostname and port number. Once SSL profile is defined and associated with a target server, WSO2 ESB will use the &lt;b&gt;truststore for SSL communicating&lt;/b&gt; and &lt;b&gt;keystore-truststore pair for Mutual SSL communicating.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In this example configuration, localhost:9444 is WSO2 WSAS and localhost:9445 is WSO2 BPS server. Also It should be noted that trust-store must contains target server's certificate for SSL communication and target server must contains the key-store certificate for Mutual SSL communication&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;parameter name="customSSLProfiles"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;profile&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;servers&amp;gt;www.test.org:80, localhost:9444&amp;lt;/servers&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TrustStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Location&amp;gt;path/to/trust/store&amp;lt;&lt;wbr&gt;&lt;/wbr&gt;/Location&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Type&amp;gt;JKS&amp;lt;/Type&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Password&amp;gt;password&amp;lt;/Password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TrustStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/profile&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;profile&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;servers&amp;gt;localhost:9445&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;servers&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;KeyStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Location&amp;gt;/path/to/identity/&lt;wbr&gt;&lt;/wbr&gt;store&amp;lt;/Location&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Type&amp;gt;JKS&amp;lt;/Type&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Password&amp;gt;password&amp;lt;/Password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;KeyPassword&amp;gt;password&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;KeyPassword&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/KeyStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TrustStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Location&amp;gt;path/to/trust/store&amp;lt;&lt;wbr&gt;&lt;/wbr&gt;/Location&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Type&amp;gt;JKS&amp;lt;/Type&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Password&amp;gt;password&amp;lt;/Password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TrustStore&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/profile&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/parameter&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;b&gt;Start WSO2 ESB server&lt;/b&gt;,&amp;nbsp; Run the &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows) file in the ESB_HOME/bin directory&lt;br /&gt;Once the server starts, point your Web browser to https://localhost:9443/carbon/&amp;nbsp;&amp;nbsp; You can see &lt;b&gt;following info logs &lt;/b&gt;when starting, If you have configured SSL Profile successfully.&lt;br /&gt;&lt;br /&gt;[2010-07-01 15:22:26,300]&amp;nbsp; INFO - HttpCoreNIOSSLSender Loading Trust Keystore from : path/to/trust/store&lt;br /&gt;[2010-07-01 15:22:26,306]&amp;nbsp; INFO - HttpCoreNIOSSLSender Loading Identity Keystore from : /path/to/identity/&lt;wbr&gt;&lt;/wbr&gt;store&lt;br /&gt;[2010-07-01 15:22:26,310]&amp;nbsp; INFO - HttpCoreNIOSSLSender Loading Trust Keystore from : path/to/trust/store&lt;br /&gt;[2010-07-01 15:22:26,322]&amp;nbsp; INFO - HttpCoreNIOSSLSender Custom SSL profiles initialized for 3 servers&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Lets create simple proxy services which endpoints are hosted in localhost:9444 and localhost:9445. &lt;br /&gt;&lt;br /&gt;I created following two proxies..&lt;br /&gt;&lt;br /&gt;&amp;lt;syn:proxy name="BPSProxy" transports="https http" startOnLoad="true" trace="disable"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:address uri="&lt;a href="https://localhost:9444/services/TestE4XService" target="_blank"&gt;https://localhost:9444/&lt;wbr&gt;&lt;/wbr&gt;services/TestE4XService&lt;/a&gt;"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:send/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:proxy name="WSASProxy" transports="https http" startOnLoad="true" trace="disable"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:address uri="&lt;a href="https://localhost:9445/services/HelloService" target="_blank"&gt;https://localhost:9445/&lt;wbr&gt;&lt;/wbr&gt;services/HelloService&lt;/a&gt;"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:endpoint&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:send&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:inSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syn:send/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:outSequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:target&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/syn:proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;5. Now send your request messages to two proxy services, You can see ESB will successfully communicate with SSL and Mutual SSL enabled target servers using SSL Profiles.&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/7814469042984115284-1531337407660923111?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/1531337407660923111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/07/ssl-profiles-in-wso2-esb.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1531337407660923111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1531337407660923111'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/07/ssl-profiles-in-wso2-esb.html' title='SSL profiles in WSO2 ESB'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-7430350199920884025</id><published>2010-05-27T10:00:00.000-07:00</published><updated>2010-05-29T23:18:37.083-07:00</updated><title type='text'>Enabling  JMS Transport in WSO2 BPS</title><content type='html'>As I highlighted in my previous blog post, &lt;b&gt;WSO2 BPS&lt;/b&gt; is a powerful open source BPEL engine.Here i am going to &lt;b&gt;enable JMS Transport &lt;/b&gt;in WSO2 BPS.&amp;nbsp; You can use any JMS provider as you preferred. I'm going to use &lt;b&gt;&lt;a href="http://activemq.apache.org/activemq-500-release.html"&gt;Apache ActiveMQ-5.2.0&lt;/a&gt;&lt;/b&gt; for this example.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. You can &lt;b&gt;download WSO2BPS&lt;/b&gt; (version 1.1.1) from &lt;a href="http://www.wso2.org/projects/bps"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. then you can extract in to a directory in your file system. Lets call as BPS_HOME&lt;br /&gt;&lt;br /&gt;2. &lt;b&gt;Start ActiveMQ&lt;/b&gt; message broker. Go to (ActiveMQ_Install_directory)/bin and run activemq.sh (or activemq.bin in DOS)&lt;br /&gt;&lt;br /&gt;3. &lt;b&gt;Copy ActiveMQ libraries to BPS_HOME/repository/components/lib&lt;/b&gt; directory&lt;br /&gt;&lt;br /&gt;&lt;b&gt;activemq-core-5.2.0.jar and geronimo-j2ee-management_1.0_spec-1.0&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;4.&lt;b&gt; Enable JMS &lt;/b&gt;Transport in WSO2 BPS.&amp;nbsp; Uncomment following parameters in &lt;b&gt;axis2.xml &lt;/b&gt;(BPS_HOME/conf directory) Here I have configured it for ActiveMQ environment.&lt;br /&gt;&lt;br /&gt;For Receiver&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;parameter name="myTopicConnectionFactory"&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.factory.initial"&amp;gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.provider.url"&amp;gt;tcp://localhost:61616&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&amp;gt;TopicConnectionFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="myQueueConnectionFactory"&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.factory.initial"&amp;gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.provider.url"&amp;gt;tcp://localhost:61616&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&amp;gt;QueueConnectionFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="default"&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.factory.initial"&amp;gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="java.naming.provider.url"&amp;gt;tcp://localhost:61616&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parameter name="transport.jms.ConnectionFactoryJNDIName"&amp;gt;QueueConnectionFactory&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For Sender&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; &amp;lt;transportSender name="jms"&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class="org.apache.axis2.transport.jms.JMSSender"/&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;5. &lt;b&gt;Start&lt;/b&gt; BPS server running&amp;nbsp; the &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows)&lt;br /&gt;You can see following Logs when starting if you have correctly configured&lt;br /&gt;&lt;br /&gt;[2010-05-27 22:19:55,019]&amp;nbsp; INFO -&amp;nbsp; JMS ConnectionFactory : default initialized&lt;br /&gt;[2010-05-27 22:19:55,021]&amp;nbsp; INFO -&amp;nbsp; JMS ConnectionFactory : myTopicConnectionFactory initialized&lt;br /&gt;[2010-05-27 22:19:55,022]&amp;nbsp; INFO -&amp;nbsp; JMS ConnectionFactory : myQueueConnectionFactory initialized&lt;br /&gt;[2010-05-27 22:19:55,022]&amp;nbsp; INFO -&amp;nbsp; JMS Transport Receiver/Listener initialized...&lt;br /&gt;&lt;br /&gt;We can see&lt;b&gt; JMS endpoint&lt;/b&gt; has been added to BPEL service (See the wsdl also)&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/_x2yN9Cvtyec/S_6jTjnMeRI/AAAAAAAAAEw/wBgiHYQ2pvE/s1600/jms3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/S_6jTjnMeRI/AAAAAAAAAEw/wBgiHYQ2pvE/s640/jms3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;&lt;b&gt;Note:-&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Step 4, &amp;nbsp; You can enable JMS and configure it using &lt;b&gt;UI&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="breadcrumb-link"&gt;Home&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&amp;nbsp;&amp;gt;&amp;nbsp;Manage&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&amp;nbsp;&amp;gt;&amp;nbsp;Transports&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_x2yN9Cvtyec/S_6kGBOwZ_I/AAAAAAAAAE4/TVHnrzS5aL8/s1600/jms1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/S_6kGBOwZ_I/AAAAAAAAAE4/TVHnrzS5aL8/s640/jms1.png" width="640" /&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;/div&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;/div&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://1.bp.blogspot.com/_x2yN9Cvtyec/S_6kUwDtwiI/AAAAAAAAAFA/nczoqUTKH_Q/s1600/jms2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/S_6kUwDtwiI/AAAAAAAAAFA/nczoqUTKH_Q/s640/jms2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But there are some issues when disabling&amp;nbsp; JMS from UI. So i recommended to use axis2.xml configure JMS in WSO2BPS version 1.1.1. This will be fixed in &lt;b&gt;next WSO2BPS release.....!!!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="breadcrumb-link"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="breadcrumb-link"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-7430350199920884025?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/7430350199920884025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/05/enabling-jms-transport-in-wso2-bps.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7430350199920884025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7430350199920884025'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/05/enabling-jms-transport-in-wso2-bps.html' title='Enabling  JMS Transport in WSO2 BPS'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_x2yN9Cvtyec/S_6jTjnMeRI/AAAAAAAAAEw/wBgiHYQ2pvE/s72-c/jms3.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-9194820005905309277</id><published>2010-05-13T06:12:00.001-07:00</published><updated>2010-05-13T10:45:16.903-07:00</updated><title type='text'>WSO2 BPS in Cluster</title><content type='html'>&lt;br /&gt;Clustering is one of a major requirement for web servers which are inproduction environment. because these servers have tofulfill two basic needs, high availability and scalability.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WSO2carbon&lt;/b&gt; based web products comes with theclustering functionality (Please refer&lt;b&gt; &lt;a href="http://wso2.org/library/articles/introduction-wso2-carbon-clustering"&gt;this&lt;/a&gt;&lt;/b&gt; article for moreinformation on WSO2 carbon clustering) Here I am going to introduce toconfigure the &lt;b&gt;&lt;a href="http://wso2.org/projects/bps"&gt;WSO2BPS&lt;/a&gt;&lt;/b&gt; in a clustering environment.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;1. You can download WSO2BPS (version 1.1.1) from &lt;b&gt;&lt;a href="http://wso2.org/projects/bps"&gt;here&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;2. Allnodes in BPS cluster would &lt;b&gt;share the&amp;nbsp; same persistence storage (BPSdatasource) and same registry&lt;/b&gt;. So Each node must be connected to external datasource and external registry. &lt;b&gt;&lt;a href="http://pathberiya.blogspot.com/2009/11/how-to-configure-external-mysql.html"&gt;This&lt;/a&gt;&lt;/b&gt; Post is described configurationof&amp;nbsp; external BPS datasource. Use same configuration for all nodes, Butdon't forget to use different provider port for each node, if you are starting all nodes in same machine (same url).&lt;br /&gt;&lt;br /&gt;3. Then registry.xml and user-mgt.xml (&lt;span id="SPELLING_ERROR_11"&gt;Both are in WSO&lt;/span&gt;2BPS/conf directory)must be configured to use a one central registry. Use same configuration for all nodes.&lt;br /&gt;&lt;br /&gt;Sample configuration of registry.xml for Mysql database&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dbConfig name="wso2registry"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;jdbc:mysql://10.100.1.1:&lt;wbr&gt;&lt;/wbr&gt;3306/regdb&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;userName&amp;gt;regadmin&amp;lt;/userName&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;password&amp;gt;regadmin&amp;lt;/password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;driverName&amp;gt;com.mysql.jdbc.&lt;wbr&gt;&lt;/wbr&gt;Driver&amp;lt;/driverName&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;maxActive&amp;gt;80&amp;lt;/maxActive&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;maxWait&amp;gt;6000&amp;lt;/maxWait&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;minIdle&amp;gt;5&amp;lt;/minIdle&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dbConfig&amp;gt;&lt;br /&gt;&lt;br /&gt;Sample configuration of user-mgt.xml&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;Database&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;URL&amp;gt;jdbc:mysql://10.100.1.1:&lt;wbr&gt;&lt;/wbr&gt;3306/regdb&amp;lt;/URL&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;UserName&amp;gt;regadmin&amp;lt;/UserName&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Password&amp;gt;regadmin&amp;lt;/Password&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Dialect&amp;gt;mysql&amp;lt;/Dialect&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Driver&amp;gt;com.mysql.jdbc.Driver&amp;lt;&lt;wbr&gt;&lt;/wbr&gt;/Driver&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;maxActive&amp;gt;30&amp;lt;/maxActive&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;maxWait&amp;gt;60000&amp;lt;/maxWait&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;minIdle&amp;gt;5&amp;lt;/minIdle&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Database&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Then One BPS node must be started as the &lt;b&gt;group management node&lt;/b&gt;. you can simply do this by configuring following basic parameters in &lt;b&gt;axis2.xml &lt;/b&gt;(&lt;span id="SPELLING_ERROR_11"&gt;WSO&lt;/span&gt;2BPS/conf directory)&lt;br /&gt;&lt;br /&gt;# Enable clustering for this node&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;clustering class="org.apache.axis2.&lt;/b&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;clustering.tribes.&lt;/b&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;TribesClusteringAgent" enable="true"&amp;gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;# Clustering domain/group&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;parameter name="domain"&amp;gt;bps&amp;lt;/parameter&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# Enable the group Management&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;groupManagement enable="true"&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;applicationDomain name="bps"description="BPS group"agent="org.apache.axis2.&lt;/b&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;clustering.management.&lt;/b&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;b&gt;DefaultGroupManagementAgent"/&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;/groupManagement&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;5.&amp;nbsp; Other BPS nodes also should be started with enabling the clustering (Can enable or disable node management, but there is no effect for BPS. So here i did not use it)&lt;br /&gt;&lt;br /&gt;# Enable clustering for this node&lt;br /&gt;&lt;br /&gt;&amp;lt;clustering class="org.apache.axis2.&lt;wbr&gt;&lt;/wbr&gt;clustering.tribes.&lt;wbr&gt;&lt;/wbr&gt;TribesClusteringAgent" enable="true"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;# Clustering domain/group&lt;br /&gt;&lt;br /&gt;&amp;lt;parameter name="domain"&amp;gt;bps&amp;lt;/parameter&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Start every BPS node running&amp;nbsp; the &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows) file in the &lt;span id="SPELLING_ERROR_11"&gt;WSO&lt;/span&gt;2BPS/bin directory.&amp;nbsp; Don't forget to use different http and https port for each node, if you are starting all nodes in same machine (same url). Configuration can be found in transport.xml and axis2.xml&lt;br /&gt;&lt;br /&gt;By looking at Debug and INFO message you can understand what is happening there. &lt;br /&gt;&lt;br /&gt;But WSO2BPS (version 1.1.1) have some limitations when setting on clustering ( Retiring of BPEL process not propagate to other node, Managing BPEL packages and processes should be disable for member nodes) which would be resolved in &lt;b&gt;next BPS release.&lt;/b&gt;........!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-9194820005905309277?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/9194820005905309277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/05/test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/9194820005905309277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/9194820005905309277'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/05/test.html' title='WSO2 BPS in Cluster'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-844371041916742138</id><published>2010-02-07T11:08:00.001-08:00</published><updated>2010-05-01T06:20:00.133-07:00</updated><title type='text'>How to create a Password Callback class for External partner BPEL service</title><content type='html'>Most of web services have been secured using various WS security&amp;nbsp; methods.&lt;br /&gt;&lt;br /&gt;So client needed a Password callback class to invoke those secured web services, because to&lt;br /&gt;&lt;br /&gt;1) Get the password to build the username token&lt;br /&gt;&lt;br /&gt;2) Get the private key password for signture or decryption&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is very easy to write a Password callback. Following Java code is for simple Password callback class&lt;br /&gt;&lt;br /&gt;package org.wso2.bps.samples.pwcb;&lt;br /&gt;&lt;br /&gt;import org.apache.ws.security.WSPasswordCallback;&lt;br /&gt;import javax.security.auth.callback.Callback;&lt;br /&gt;import javax.security.auth.callback.CallbackHandler;&lt;br /&gt;import javax.security.auth.callback.UnsupportedCallbackException;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;public class PWCBHandler implements CallbackHandler {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void handle(Callback[] callbacks) throws IOException,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UnsupportedCallbackException {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; callbacks.length; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String id = pwcb.getIdentifer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int usage = pwcb.getUsage();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (usage == WSPasswordCallback.USERNAME_TOKEN) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Logic to get the password to build the username token&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ("admin".equals(id)) {pwcb.setPassword("admin");}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (usage == WSPasswordCallback.SIGNATURE || usage == WSPasswordCallback.DECRYPT) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Logic to get the private key password for signture or decryption&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ("client".equals(id)) {pwcb.setPassword("apache");}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ("service".equals(id)) {pwcb.setPassword("apache");}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But when external partner service is invoked by a &lt;b&gt;BPEL &lt;/b&gt;is act as a client to the external web service. Here I have used &lt;b&gt;&lt;a href="http://wso2.org/"&gt;WSO2BPS&lt;/a&gt; &lt;/b&gt;(which allows you to easily deploy and manage complex BPEL services) to deploy BPEL services.&lt;br /&gt;&lt;br /&gt;So How can we use Password callback class in BPEL engine,WSO2BPS ???&lt;br /&gt;&lt;br /&gt;It is easy..... &lt;b&gt;First create a jar file&lt;/b&gt; from above sample Password callback&lt;br /&gt;&lt;br /&gt;1. Copy  sample Password callback in to text file and save it as  PWCBHandler.java&lt;br /&gt;&lt;br /&gt;2. Create a directory called "temp"&amp;nbsp; ...any where you like,&lt;br /&gt;&lt;br /&gt;3. Go in to temp directory and create following directory structure &amp;nbsp; org/wso2/bps/samples/pwcb &lt;br /&gt;&lt;br /&gt;4. Copy PWCBHandler.java in to pwcb directory&lt;br /&gt;&lt;br /&gt;5. Download wss4j.jar from &lt;a href="http://ws.apache.org/wss4j/"&gt;here&lt;/a&gt; (http://ws.apache.org/wss4j/) and copy it to temp directory&lt;br /&gt;&lt;br /&gt;6. Compile PWCBHandler.java pointing classpath to wss4j.jar from pwcb directory&lt;br /&gt;&lt;br /&gt;Ex:-&lt;br /&gt;#javac PWCBHandler.java -classpath /home/asela/temp/PWC/org/wso2/bps/samples/pwcb/wss4j-1.5.8.jar&lt;br /&gt;&lt;br /&gt;7. Go in to temp directory and create a jar file issuing following &lt;br /&gt;&lt;br /&gt;#jar cf PWCBHandler.jar org/wso2/bps/samples/pwcb/*.class&lt;br /&gt;&lt;br /&gt;Now you have created your&amp;nbsp; PWCBHandler.jar and &lt;b&gt;Copy jar in to /repository/components/lib &lt;/b&gt;(Remember to restart the Wso2bps server to apply the jar)&lt;br /&gt;&lt;br /&gt;Also Remember to point&amp;nbsp; your  policy file of the External partner service to the &lt;b&gt;password Callback&lt;/b&gt; jar (Here - org.wso2.bps.samples.pwcb.PWCBHandler).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That All........!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-844371041916742138?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/844371041916742138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/02/how-to-create-password-callback-class.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/844371041916742138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/844371041916742138'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/02/how-to-create-password-callback-class.html' title='How to create a Password Callback class for External partner BPEL service'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-8215894214247523233</id><published>2010-01-30T10:46:00.000-08:00</published><updated>2010-01-30T10:46:00.334-08:00</updated><title type='text'>How Install PostgreSQL database in Ubuntu 9.04</title><content type='html'>It is very simple to install postgreSQL in Ubuntu. Just run the following command in the command prompt&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sudo apt-get install postgresql&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This will install the latest postgreSQL and Now your are ready to use it.&lt;br /&gt;&lt;br /&gt;But lets do some important configurations (that I did). The PostgreSQL configuration files are stored in the /etc/postgresql/&lt;version&gt;/main directory. In my case, I install PostgreSQL 8.3.&amp;nbsp; So there are in /etc/postgresql/8.3/main&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Enable TCP/IP connections&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;By default, connection via TCP/IP is disabled. PostgreSQL supports multiple client authentication methods. By default, IDENT authentication method is used for postgres and local users&lt;br /&gt;&lt;br /&gt;To enable TCP/IP connections, edit the file /etc/postgresql/8.3/main/postgresql.conf&lt;br /&gt;&lt;br /&gt;Locate the line #listen_addresses = 'localhost'&amp;nbsp; and uncomment it.&lt;br /&gt;&lt;br /&gt;To allow other computers to connect to your PostgreSQL server replace 'localhost' with the IP Address of your server. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Set a password for the postgres user&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Run the following command at a terminal prompt to connect to the default PostgreSQL template database&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;sudo -u postgres psql template1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Then run following SQL command at the psql prompt to configure the password for the user postgres.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ALTER USER postgres with encrypted password 'your_password';&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Remember to restart the PostgreSQL service to initialize the new configuration&lt;br /&gt;&lt;br /&gt;Enter the following to restart&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/version&gt;&lt;br /&gt;&lt;b&gt;sudo /etc/init.d/postgresql-8.3 restart&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-8215894214247523233?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/8215894214247523233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/01/how-install-postgresql-database-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/8215894214247523233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/8215894214247523233'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/01/how-install-postgresql-database-in.html' title='How Install PostgreSQL database in Ubuntu 9.04'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-1420640700314202706</id><published>2010-01-30T09:48:00.001-08:00</published><updated>2010-05-13T10:45:51.408-07:00</updated><title type='text'>How to Deploy Axis2 services in WSO2 BPS</title><content type='html'>Wso2bps is powerful bpel engine which allows you to easily deploy and manage bpel services,&amp;nbsp; can be download from here. &lt;br /&gt;&lt;br /&gt;Also we can deploy Axis2 services in Wso2bps (But not from remotely).&amp;nbsp; It is easy , Just copy your *.aar file in to repository/services directory in the extracted Wso2bps&lt;br /&gt;&lt;br /&gt;After few second, your service will be list in the Deployed service page. You can configure QoS accessing Service Dashboard.&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/_x2yN9Cvtyec/S270q-c0cdI/AAAAAAAAAEE/OXowcCMpR7Q/s1600-h/Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/S270q-c0cdI/AAAAAAAAAEE/OXowcCMpR7Q/s640/Screenshot.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-1420640700314202706?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/1420640700314202706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2010/01/test.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1420640700314202706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/1420640700314202706'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2010/01/test.html' title='How to Deploy Axis2 services in WSO2 BPS'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_x2yN9Cvtyec/S270q-c0cdI/AAAAAAAAAEE/OXowcCMpR7Q/s72-c/Screenshot.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-7186834462285339398</id><published>2009-11-04T19:00:00.000-08:00</published><updated>2010-05-01T06:19:05.019-07:00</updated><title type='text'>How to configure External  Database for WSO2 Business Process Server</title><content type='html'>&lt;a href="http://wso2.org/projects/bps"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WSO&lt;/span&gt;2BPS&lt;/a&gt; (which allows you to easily deploy and manage complex BPEL services) can be configured to use external database other than the embedded Derby &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;database&lt;/span&gt; as it's persistence storage.&lt;br /&gt;&lt;br /&gt;Lets configure External database for BPS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Set up and start your database server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;WSO2BPS (version - 1.1.1) supports for Mysql ,Oracle and MSSQL Database server.&amp;nbsp; Latest Vesion of WSO2BPS would support for PostgreSQL. &lt;br /&gt;&lt;a href="http://wso2.org/projects/wsas/java"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;2. Create a database &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Extract wso2wbps-1.1.1.zip and &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Load the BPS schema into that database using provided &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SQL&lt;/span&gt; scripts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(For example if you are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;mysql&lt;/span&gt; as your &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;database&lt;/span&gt; server, use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;mysql&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;sql&lt;/span&gt; script located inside '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;WSO&lt;/span&gt;2BPS/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;dbscripts&lt;/span&gt;/bps' directory to create the BPS schema)&lt;br /&gt;&lt;br /&gt;use command "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;mysql&lt;/span&gt; -u root -p bps &amp;lt; /home/asela/BPS/wso2bps-1.1.0-SNAPSHO/dbscripts/bps/mysql.sql"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Create file named '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;datasources&lt;/span&gt;.properties' inside &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;WSO&lt;/span&gt;2BPS/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;conf&lt;/span&gt; directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Add following configuration  in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;datasources&lt;/span&gt;.properties file&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Following is sample configuration for Mysql.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;synapse.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;datasources&lt;/span&gt;=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;bpsds&lt;/span&gt;&lt;br /&gt;synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory&lt;br /&gt;synapse.datasources.providerPort=2199&lt;br /&gt;&lt;br /&gt;synapse.datasources.bpsds.registry=JNDI&lt;br /&gt;synapse.datasources.bpsds.type=BasicDataSource&lt;br /&gt;synapse.datasources.bpsds.driverClassName=com.mysql.jdbc.Driver&lt;br /&gt;synapse.datasources.bpsds.url=jdbc:mysql://localhost:3306/bps&lt;br /&gt;synapse.datasources.bpsds.username=root&lt;br /&gt;synapse.datasources.bpsds.password=asela&lt;br /&gt;synapse.datasources.bpsds.dsName=bpsds&lt;br /&gt;synapse.datasources.bpsds.maxActive=100&lt;br /&gt;synapse.datasources.bpsds.maxIdle=20&lt;br /&gt;synapse.datasources.bpsds.maxWait=10000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;in first three lines, data source names, initial context factory and provider port have been configured. Here "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;bpsds&lt;/span&gt;"is used as data source name.&lt;br /&gt;&lt;br /&gt;other lines are specified the properties for previously created database. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;Make sure&lt;/span&gt; that your database &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;url&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;username&lt;/span&gt; and password are correctly specified.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.Open bps.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;xml&lt;/span&gt; file inside &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;WSO&lt;/span&gt;2BPS/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;conf&lt;/span&gt; directory and add following parameters &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvJDq0fahQI/AAAAAAAAADM/816dxFF6oC0/s1600-h/database.GIF" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400453306094617858" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvJDq0fahQI/AAAAAAAAADM/816dxFF6oC0/s400/database.GIF" style="cursor: pointer; display: block; height: 102px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;datasource name="bpsds"&gt;&lt;jndi contextfactory="com.sun.jndi.rmi.registry.RegistryContextFactory" providerurl="rmi://localhost:2199"&gt;&lt;/jndi&gt;&lt;/datasource&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7.Copy the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;JDBC&lt;/span&gt; driver jar file into the '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;WSO&lt;/span&gt;2BPS/repository/components/lib' directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8.Then start the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;WSO&lt;/span&gt;2BPS server&amp;nbsp;&lt;/span&gt;&lt;/dbconf&gt;&lt;/dbconf&gt;&lt;br /&gt;&lt;br /&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;if correctly configured You will see following log in WSO2BPS startup..&lt;/dbconf&gt;&lt;/dbconf&gt;&lt;br /&gt;&lt;br /&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;[2010-05-01 17:49:56,056]&amp;nbsp; INFO -&amp;nbsp; DataSources will be registered in the JNDI context with provider PROP_URL : rmi://asela-laptop:2199&lt;br /&gt;..................................... &lt;/dbconf&gt;&lt;/dbconf&gt;&lt;br /&gt;&lt;br /&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;[2010-05-01 17:49:59,490]&amp;nbsp; INFO -&amp;nbsp; ODE using external DataSource "bpsds".&lt;br /&gt;[2010-05-01 17:49:59,491]&amp;nbsp; INFO -&amp;nbsp; Using DAO Connection Factory class: org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl&lt;br /&gt;[2010-05-01 17:49:59,491]&amp;nbsp; INFO -&amp;nbsp; Using DAO Connection Factory class org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl.&lt;br /&gt;[2010-05-01 17:50:00,701]&amp;nbsp; INFO -&amp;nbsp; Registering E4X Extension...&lt;br /&gt;[2010-05-01 17:50:00,761]&amp;nbsp; INFO -&amp;nbsp; BPEL Server Started.&lt;br /&gt;[2010-05-01 17:50:00,806]&amp;nbsp; INFO -&amp;nbsp; Starting OpenJPA 1.1.0&lt;br /&gt;[2010-05-01 17:50:00,914]&amp;nbsp; INFO -&amp;nbsp; Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary".&lt;br /&gt;&amp;nbsp;&lt;/dbconf&gt;&lt;/dbconf&gt;&lt;br /&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/dbconf&gt;&lt;/dbconf&gt;&lt;br /&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;dbconf mode="EXTERNAL"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/dbconf&gt;&lt;/dbconf&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-7186834462285339398?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/7186834462285339398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2009/11/how-to-configure-external-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7186834462285339398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7186834462285339398'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2009/11/how-to-configure-external-mysql.html' title='How to configure External  Database for WSO2 Business Process Server'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x2yN9Cvtyec/SvJDq0fahQI/AAAAAAAAADM/816dxFF6oC0/s72-c/database.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-3818128162010731672</id><published>2009-11-03T08:58:00.000-08:00</published><updated>2009-11-03T18:21:33.277-08:00</updated><title type='text'>Sample BPEL to ensure the security in External partner service</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Resources you need &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1&lt;a href="http://wso2.org/"&gt;.&lt;/a&gt;&lt;a href="http://wso2.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WSO&lt;/span&gt;2BPS &lt;/a&gt;(which allows you to easily deploy and manage &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;bpel&lt;/span&gt; services)&lt;br /&gt;2.&lt;a href="http://wso2.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WSO&lt;/span&gt;2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WSAS&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://www.4shared.com/file/145930600/71cec2a4/SecurePartnerBPEL.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SecurePartnerBPEL&lt;/span&gt;.zip&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://www.4shared.com/file/145930605/1a4362b/SecurePartnerService.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SecurePartnerService&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;aar&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://www.4shared.com/file/145930592/4c44a698/sample_keys.html"&gt;sample_keys.zip&lt;/a&gt;&lt;br /&gt;6.&lt;a href="http://www.4shared.com/file/145930583/2258a74f/PWCBHandler.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PWCBHandler&lt;/span&gt;.zip&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First deploy External partner service in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;WSO&lt;/span&gt;2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;WSAS&lt;/span&gt; and secure it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Extract wso2wsas-3.1.1.zip and run &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;WSAS&lt;/span&gt; server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;wso2wsas-3.1.1/bin/wso2server.sh  - in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;unix&lt;/span&gt;&lt;br /&gt;wso2wsas-3.1.1/bin/wso2server.bat - in windows&lt;br /&gt;&lt;br /&gt;Please refer README file and More details about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WSO&lt;/span&gt;2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;WSAS&lt;/span&gt; is available at&lt;a href="http://wso2.org/projects/wsas/java"&gt; here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Upload &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SecurePartnerService&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;aar&lt;/span&gt; Axis2 service&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_x2yN9Cvtyec/SvBjDmTiSHI/AAAAAAAAABE/xuXf5BRPMSw/s1600-h/Screenshot-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/SvBjDmTiSHI/AAAAAAAAABE/xuXf5BRPMSw/s400/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5399924866690467954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Add new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;keystore&lt;/span&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;WSAS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvBjub5GSRI/AAAAAAAAABM/4LtFmkZMGPc/s1600-h/Screenshot-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvBjub5GSRI/AAAAAAAAABM/4LtFmkZMGPc/s400/Screenshot-2.png" alt="" id="BLOGGER_PHOTO_ID_5399925602629601554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Extract sample_keys.zip and browse to the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;service&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;jks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;provide following passwords, Key store Password= &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;apache&lt;/span&gt;   Private Key Password=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;apache&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvBkSb5kyUI/AAAAAAAAABU/d9HbtgGNc1s/s1600-h/Screenshot-3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvBkSb5kyUI/AAAAAAAAABU/d9HbtgGNc1s/s400/Screenshot-3.png" alt="" id="BLOGGER_PHOTO_ID_5399926221106891074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Add new role and user&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDajrJoR9I/AAAAAAAAABc/Mw7c-FzXovw/s1600-h/Screenshot-10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDajrJoR9I/AAAAAAAAABc/Mw7c-FzXovw/s400/Screenshot-10.png" alt="" id="BLOGGER_PHOTO_ID_5400056259630614482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Add new role called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;bpsusers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then add new user&lt;br /&gt;&lt;br /&gt;provide &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;username&lt;/span&gt; = client,   password=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;apache&lt;/span&gt;  (these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;username&lt;/span&gt; and password must be in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;PWCBHandler&lt;/span&gt;.jar)&lt;br /&gt;&lt;br /&gt;select &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;bpsusers&lt;/span&gt; role for client user&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;Go to&lt;/span&gt; Service Dashboard of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;SecurePartnerService&lt;/span&gt; and enable security&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbGZpR5nI/AAAAAAAAABk/b8z6t9Qjgig/s1600-h/Screenshot-7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbGZpR5nI/AAAAAAAAABk/b8z6t9Qjgig/s400/Screenshot-7.png" alt="" id="BLOGGER_PHOTO_ID_5400056856226948722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbO517W4I/AAAAAAAAABs/WttlESxeg8w/s1600-h/Screenshot-8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbO517W4I/AAAAAAAAABs/WttlESxeg8w/s400/Screenshot-8.png" alt="" id="BLOGGER_PHOTO_ID_5400057002308885378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. Select any security Scenarios (select &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_30"&gt;service&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;jks&lt;/span&gt; as Trusted Key Stores, Private key store and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;bpsusers&lt;/span&gt; as User Groups)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbfPJGfmI/AAAAAAAAAB0/gGzXsKX_mlk/s1600-h/Screenshot-9.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDbfPJGfmI/AAAAAAAAAB0/gGzXsKX_mlk/s400/Screenshot-9.png" alt="" id="BLOGGER_PHOTO_ID_5400057282904358498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Then deploy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;BPEL&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;service&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;WSO&lt;/span&gt;2BPS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Extract wso2wbps-1.1.0.zip and copy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;PWCBHandler&lt;/span&gt;.jar to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;WSO&lt;/span&gt;2BPS/repository/components/lib and  Extract sample_keys.zip in to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;WSO&lt;/span&gt;2BPS/samples. Then run BPS server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;wso2wsas-3.1.1/bin/wso2server.sh  - in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;unix&lt;/span&gt;&lt;br /&gt;wso2wsas-3.1.1/bin/wso2server.bat - in windows&lt;br /&gt;&lt;br /&gt;Please refer README file and More details about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WSO&lt;/span&gt;2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;BPS&lt;/span&gt; is available at&lt;a href="http://wso2.org/projects/wsas/java"&gt; here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.Deploy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;bpel&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_41"&gt;service&lt;/span&gt; in BPS (just click Add &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;BPEL&lt;/span&gt; and browse the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;SecurePartnerBPEL&lt;/span&gt;.zip)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvDbyucdWVI/AAAAAAAAAB8/aGOV02qGlNY/s1600-h/Screenshot-15.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvDbyucdWVI/AAAAAAAAAB8/aGOV02qGlNY/s400/Screenshot-15.png" alt="" id="BLOGGER_PHOTO_ID_5400057617724561746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.Under Deployed Services, you can see &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;SecurePartnerBPELServiceService&lt;/span&gt; service.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;tcpmon&lt;/span&gt;( &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;WSO&lt;/span&gt;2BPS/bin/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;tcpmon&lt;/span&gt;.sh) and configure it to monitor the SOAP messages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Listen port=9765     Target port= port of your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;SecurePartnerService&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.Now try this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_49"&gt;service&lt;/span&gt; using Try it&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enter the security scenario number that is used to secure your External partner service.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvDcHnBTFfI/AAAAAAAAACE/SnZ1K_SqO7o/s1600-h/Screenshot-17.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvDcHnBTFfI/AAAAAAAAACE/SnZ1K_SqO7o/s400/Screenshot-17.png" alt="" id="BLOGGER_PHOTO_ID_5400057976508847602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Service returns the detail about security scenario that your External partner service is used.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDcSTo5GSI/AAAAAAAAACM/DCyIR9A2e0w/s1600-h/Screenshot-18.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_x2yN9Cvtyec/SvDcSTo5GSI/AAAAAAAAACM/DCyIR9A2e0w/s400/Screenshot-18.png" alt="" id="BLOGGER_PHOTO_ID_5400058160284768546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;tcpmon&lt;/span&gt; can not use for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;UsernameToken&lt;/span&gt; security &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_52"&gt;scenario&lt;/span&gt;. According to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;SecurePartnerBPEL&lt;/span&gt;.zip, you must start your External partner &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_54"&gt;service&lt;/span&gt; in port=9444. To change http and https port, configure "port" parameter(&lt;parameter name="port"&gt;9763&lt;/parameter&gt;) in your axis2.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;xml&lt;/span&gt; and transport.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;xml&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-3818128162010731672?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/3818128162010731672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2009/11/how-to-secure-external-partner-service.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/3818128162010731672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/3818128162010731672'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2009/11/how-to-secure-external-partner-service.html' title='Sample BPEL to ensure the security in External partner service'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_x2yN9Cvtyec/SvBjDmTiSHI/AAAAAAAAABE/xuXf5BRPMSw/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7814469042984115284.post-7494482835200703548</id><published>2009-10-18T03:34:00.000-07:00</published><updated>2010-06-24T01:36:50.029-07:00</updated><title type='text'>Secured BPEL services</title><content type='html'>&lt;br /&gt;Securityis one of the essential&amp;nbsp; requirement for BPEL services as today BPELservices are mostly used for banking, paying and creditingapplications. So BPEL services must be able to secure very reliable andflexible manner. WSO2BPS is the Best solution for it. Also it provides to configure security for your BPEL service in a user friendly manner.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;First Lets deploy a simple BPEL in WSO2BPS.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Download latest release of WSO2BPS from &lt;/b&gt;&lt;b&gt;&lt;a href="http://wso2.org/"&gt;Here&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Extract wso2bps-1.1.X.zip&amp;nbsp; &lt;/span&gt;Lets define extracted location as BPS_HOME&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Start BPS server&lt;/span&gt;&amp;nbsp; Run the &lt;span id="SPELLING_ERROR_8"&gt;wso&lt;/span&gt;2server.sh (in &lt;span id="SPELLING_ERROR_9"&gt;unix&lt;/span&gt;) or &lt;span id="SPELLING_ERROR_10"&gt;wso&lt;/span&gt;2server.bat (in windows) file in the BPS_HOME/bin directory&lt;br /&gt;Once the server starts, point your Web browser to https://localhost:9443/carbon/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Deploy &lt;span id="SPELLING_ERROR_12"&gt;BPEL&lt;/span&gt; package &lt;/span&gt;just click on Add &lt;span id="SPELLING_ERROR_13"&gt;BPEL&lt;/span&gt; button and browse the &lt;span id="SPELLING_ERROR_14"&gt;Location of Your BPEL Package.&amp;nbsp; You can download sample BPEL Package (&lt;/span&gt;&lt;span id="SPELLING_ERROR_14"&gt;HelloWorld&lt;/span&gt;.zip&lt;span id="SPELLING_ERROR_14"&gt;) from &lt;a href="http://www.4shared.com/file/9adF3Jx5/HelloWorld.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. Lets used it for further discussions. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvIyf9QSv5I/AAAAAAAAACU/E7-RTVU1R2s/s1600-h/Screenshot-15.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400434427770879890" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvIyf9QSv5I/AAAAAAAAACU/E7-RTVU1R2s/s400/Screenshot-15.png" style="cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;In service list you will see our BPEL services (&lt;span id="SPELLING_ERROR_15"&gt;HelloService&lt;/span&gt;) and you can invoke this service. (by clicking on "Try this service" in WSO2BPS or Using Soapui).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIyxga19FI/AAAAAAAAACc/JLDQWDiZ1xc/s1600-h/Screenshot16.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400434729268147282" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIyxga19FI/AAAAAAAAACc/JLDQWDiZ1xc/s400/Screenshot16.png" style="cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;So above BPEL service has not secured. Any one could be able to invoke it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvIy8Ds1XwI/AAAAAAAAACk/Ive2FwV1Ln0/s1600-h/Screenshot17.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400434910537539330" src="http://2.bp.blogspot.com/_x2yN9Cvtyec/SvIy8Ds1XwI/AAAAAAAAACk/Ive2FwV1Ln0/s400/Screenshot17.png" style="cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Now it is time to secure the our BPEL service&lt;/b&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.&lt;span id="SPELLING_ERROR_21"&gt;Go to&lt;/span&gt; Service Dashboard of &lt;span id="SPELLING_ERROR_22"&gt;BPEL service&lt;/span&gt; and enable security&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can see there are several QoS configurations for our BPEL service. Lets select the security&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIzvG6TXbI/AAAAAAAAAC0/zvIrFbBoEKs/s1600-h/Screenshot20.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400435787572665778" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIzvG6TXbI/AAAAAAAAAC0/zvIrFbBoEKs/s400/Screenshot20.png" style="display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIz5f3aX0I/AAAAAAAAAC8/8iHAZnkHZZw/s1600-h/Screenshot21.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400435966070120258" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvIz5f3aX0I/AAAAAAAAAC8/8iHAZnkHZZw/s400/Screenshot21.png" style="cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt; &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;6. Select any security Scenarios&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As you can see, &lt;b&gt;15 security configuration scenarios &lt;/b&gt;are pre-defined for our BPEL service. You can use any one out of this Because I am going to write a client that works for all... &lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvI0KJT7zBI/AAAAAAAAADE/z6WFbyxI704/s1600-h/Screenshot22.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400436252073511954" src="http://4.bp.blogspot.com/_x2yN9Cvtyec/SvI0KJT7zBI/AAAAAAAAADE/z6WFbyxI704/s400/Screenshot22.png" style="cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here i am used default key store &lt;b&gt;(wso2carbon.jks)&lt;/b&gt; as the Trusted Key Stores and Private key Store.&amp;nbsp; Or you can simply upload a New key store using BPS UI. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_x2yN9Cvtyec/SvIzbTRlIkI/AAAAAAAAACs/VC8zpjNIAXs/s1600-h/Screenshot19.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5400435447294140994" src="http://3.bp.blogspot.com/_x2yN9Cvtyec/SvIzbTRlIkI/AAAAAAAAACs/VC8zpjNIAXs/s400/Screenshot19.png" style="display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Now lets invoke &lt;span id="SPELLING_ERROR_25"&gt;secured service&lt;/span&gt; from security client&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. Create a Java project with &lt;/span&gt;&lt;b&gt;&lt;span id="SPELLING_ERROR_27"&gt;SecurityClient&lt;/span&gt;.java and client.properties&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;files&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Add Following configuration parameters to &lt;/b&gt;&lt;b&gt;client.properties file&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;clientRe&lt;span id="SPELLING_ERROR_29"&gt;po&lt;/span&gt; &lt;/b&gt;&lt;/i&gt;= Path for Client repository location. Sample repo can be found in &lt;b&gt;BPS_HOME/samples/axis2Server/repository&lt;/b&gt; location. or can download from &lt;a href="http://www.4shared.com/file/V5mUmsRE/Client_Repo.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt; (must contains addressing.mar and rampart.mar in module directory)&lt;br /&gt;&lt;i&gt;&lt;b&gt;clientKey&lt;/b&gt;&lt;/i&gt; =Path for Client's Key Store.&amp;nbsp; Here I am using same key Store (wso2carbon.jks) which is used to secure BPEL service. you can find it from &lt;b&gt;BPS_HOME/resources/security&lt;/b&gt;. You can use any key Store but remember to import BPS cert to client key store and client cert to BPS key store. Because to fulfill the requirement for signing and encryption&lt;br /&gt;&lt;i&gt;&lt;b&gt;securityPolicyLocation&lt;/b&gt;&lt;/i&gt;=Path for the client side security policy files. You can download 15 policy files from &lt;a href="http://www.4shared.com/file/Y3k8PX-v/security_scenarios.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;i&gt;&lt;b&gt;trustStore&lt;/b&gt;&lt;/i&gt;= This is trusted store that is used for ssl communication on https. It should contains the BPS cert.you can use same key store for this. (wso2carbon.jks) &lt;br /&gt;&lt;i&gt;&lt;b&gt;securityScenarioNo&lt;/b&gt;&lt;/i&gt;=Security scenario number that used to secure the BPEL service. &lt;br /&gt;&lt;i&gt;&lt;b&gt;SoapAction&lt;/b&gt;&lt;/i&gt; =You can find it from wsdl &lt;br /&gt;&lt;i&gt;&lt;b&gt;endpointHttp&lt;/b&gt;&lt;/i&gt; =Http endpont of BPEL service&lt;br /&gt;&lt;i&gt;&lt;b&gt;endpointHttpS&lt;/b&gt;&lt;/i&gt;=Https endpont of BPEL service&lt;br /&gt;&lt;i&gt;&lt;b&gt;body&lt;/b&gt;&lt;/i&gt; = Body part of your Soap message&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sample configurations&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;clientRepo=/home/asela/Wso2/BPS/BPS_Client/Client_Repo&lt;br /&gt;clientKey =/home/asela/Wso2/BPS/BPS_Client/sample_keys/client.jks&lt;br /&gt;clientKey =/home/asela/Wso2/BPS/BPS_Client/sample_keys/wso2carbon.jks&lt;br /&gt;securityPolicyLocation=/home/asela/Wso2/BPS/BPS_Client/security_scenarios&lt;br /&gt;trustStore=/home/asela/Wso2/BPS/BPS_Client/sample_keys/wso2carbon.jks&lt;br /&gt;securityScenarioNo=7&lt;br /&gt;SoapAction =urn:hello&lt;br /&gt;endpointHttp =http://localhost:9763/services/HelloService/&lt;br /&gt;endpointHttpS =https://10.100.1.152:9443/services/HelloService/&lt;br /&gt;body =&amp;lt;p:hello xmlns:p=\"http://ode/bpel/unit-test.wsdl\"&amp;gt; &amp;lt;TestPart&amp;gt;Wso2&amp;lt;/TestPart&amp;gt; &amp;lt;/p:hello&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Copy Following Java code&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;it is simple... Nothing to change...&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;import org.apache.neethi.Policy;&lt;br /&gt;import org.apache.neethi.PolicyEngine;&lt;br /&gt;import org.apache.axiom.om.impl.builder.StAXOMBuilder;&lt;br /&gt;import org.apache.axiom.om.impl.llom.util.AXIOMUtil;&lt;br /&gt;import org.apache.axiom.om.OMElement;&lt;br /&gt;import org.apache.rampart.policy.model.RampartConfig;&lt;br /&gt;import org.apache.rampart.policy.model.CryptoConfig;&lt;br /&gt;import org.apache.rampart.RampartMessageData;&lt;br /&gt;import org.apache.axis2.client.ServiceClient;&lt;br /&gt;import org.apache.axis2.client.Options;&lt;br /&gt;import org.apache.axis2.addressing.EndpointReference;&lt;br /&gt;import org.apache.axis2.context.ConfigurationContext;&lt;br /&gt;import org.apache.axis2.context.ConfigurationContextFactory;&lt;br /&gt;import org.apache.ws.security.WSPasswordCallback;&lt;br /&gt;import javax.security.auth.callback.Callback;&lt;br /&gt;import javax.security.auth.callback.UnsupportedCallbackException;&lt;br /&gt;import javax.security.auth.callback.CallbackHandler;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;public class SecurityClient implements CallbackHandler {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;public static void main(String srgs[]) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecurityClient securityCl = new SecurityClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMElement result = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = securityCl.runSecurityClient();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(result.toString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OMElement runSecurityClient( ) throws Exception {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties properties = new Properties();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileInputStream freader=new FileInputStream("."+File.separator+"src"+File.separator+"client.properties");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.load(freader);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String clientRepo&amp;nbsp; = properties.getProperty("clientRepo");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String endpointHttpS&amp;nbsp;&amp;nbsp; = properties.getProperty("endpointHttpS");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String endpointHttp&amp;nbsp;&amp;nbsp; = properties.getProperty("endpointHttp");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int securityScenario =Integer.parseInt(properties.getProperty("securityScenarioNo"));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String clientKey = properties.getProperty("clientKey");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String SoapAction = properties.getProperty("SoapAction");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String body = properties.getProperty("body");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String trustStore=properties.getProperty("trustStore");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String securityPolicy =properties.getProperty("securityPolicyLocation");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OMElement result = null;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("javax.net.ssl.trustStore", trustStore);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");&lt;br /&gt;&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("javax.net.ssl.keyStore", keyStore + File.separator +&amp;nbsp; "wso2carbon.jks");&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("javax.net.ssl.keyStorePassword", "wso2carbon");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(clientRepo, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServiceClient sc = new ServiceClient(ctx, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sc.engageModule("rampart");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sc.engageModule("addressing");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Options opts = new Options();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(securityScenario==1){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; opts.setTo(new EndpointReference(endpointHttpS));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; opts.setTo(new EndpointReference(endpointHttp));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; opts.setAction(SoapAction);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(securityScenario!=0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String securityPolicyPath=securityPolicy+File.separator +"scenario"+securityScenario+"-policy.xml";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; opts.setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy(securityPolicyPath,clientKey));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sc.setOptions(opts);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = sc.sendReceive(AXIOMUtil.stringToOM(body));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(result.getFirstElement().getText());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Policy loadPolicy(String xmlPath , String clientKey) throws Exception {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StAXOMBuilder builder = new StAXOMBuilder(xmlPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Policy policy = PolicyEngine.getPolicy(builder.getDocumentElement());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RampartConfig rc = new RampartConfig();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setUser("admin");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setUserCertAlias("wso2carbon");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setEncryptionUser("wso2carbon");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setPwCbClass(SecurityClient.class.getName());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CryptoConfig sigCryptoConfig = new CryptoConfig();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sigCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties prop1 = new Properties();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop1.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop1.put("org.apache.ws.security.crypto.merlin.file", clientKey);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop1.put("org.apache.ws.security.crypto.merlin.keystore.password", "wso2carbon");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sigCryptoConfig.setProp(prop1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CryptoConfig encrCryptoConfig = new CryptoConfig();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encrCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Properties prop2 = new Properties();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop2.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop2.put("org.apache.ws.security.crypto.merlin.file", clientKey);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop2.put("org.apache.ws.security.crypto.merlin.keystore.password", "wso2carbon");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encrCryptoConfig.setProp(prop2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setSigCryptoConfig(sigCryptoConfig);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc.setEncrCryptoConfig(encrCryptoConfig);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; policy.addAssertion(rc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return policy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WSPasswordCallback pwcb = (WSPasswordCallback) callbacks[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String id = pwcb.getIdentifer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int usage = pwcb.getUsage();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (usage == WSPasswordCallback.USERNAME_TOKEN) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ("admin".equals(id)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pwcb.setPassword("admin");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (usage == WSPasswordCallback.SIGNATURE || usage == WSPasswordCallback.DECRYPT) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ("wso2carbon".equals(id)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pwcb.setPassword("wso2carbon");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10. Add relevant libraries to your class path&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How do we find those libraries.. there are many. It is easy Go to &lt;b&gt;BPS_HOME/bin &lt;/b&gt;and &lt;b&gt;run ant command&lt;/b&gt;. You will see created jar file in &lt;b&gt;BPS_HOME/repository/lib&lt;/b&gt;&amp;nbsp; directory. Do not forget to add&lt;b&gt; xalan jar&lt;/b&gt; that is in &lt;b&gt;BPS_HOME/lib/endorsed&lt;/b&gt; directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;11.Then run your secured client&lt;/span&gt;&lt;br /&gt;Now you are able to secure your &lt;span id="SPELLING_ERROR_37"&gt;BPEL &lt;/span&gt;service using all 15 security scenarios..........!!!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Note1&lt;/b&gt;&lt;/i&gt; :- if You want to invoke a secured BPEL service(not HelloWorld).You can&amp;nbsp; get the body part of soap message using &lt;a href="http://sourceforge.net/projects/soapui/files/soapui"&gt;soapui&lt;/a&gt; and SoapAction using WSDL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. Create a project in soapui using your service's WSDL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Copy the body part from your soap request message.( make sure to copy the correct namespace)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. Find value of Action attribute from your service's WSDL &lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Note2&lt;/b&gt;&lt;/i&gt; :- if you want to trace the secured soap messages , Open &lt;span id="SPELLING_ERROR_45"&gt;tcpmon&lt;/span&gt;( &lt;span id="SPELLING_ERROR_46"&gt;WSO&lt;/span&gt;2BPS/bin/&lt;span id="SPELLING_ERROR_47"&gt;tcpmon&lt;/span&gt;.sh) and configure it&amp;nbsp; and change http end point of your client.properties file &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Listen port&amp;nbsp;&amp;nbsp; = Port that you configure in client.properties file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target port&amp;nbsp; = Actual port of your &lt;span id="SPELLING_ERROR_48"&gt;BPEL service&lt;/span&gt;&lt;br /&gt;&lt;span id="SPELLING_ERROR_48"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="SPELLING_ERROR_48"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7814469042984115284-7494482835200703548?l=pathberiya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pathberiya.blogspot.com/feeds/7494482835200703548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pathberiya.blogspot.com/2009/10/simple-way-to-secure-your-bpel-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7494482835200703548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7814469042984115284/posts/default/7494482835200703548'/><link rel='alternate' type='text/html' href='http://pathberiya.blogspot.com/2009/10/simple-way-to-secure-your-bpel-services.html' title='Secured BPEL services'/><author><name>Asela  Pathberiya</name><uri>http://www.blogger.com/profile/08941025038081812446</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_x2yN9Cvtyec/SyU21jzUJlI/AAAAAAAAADc/2C1I19z4Y5w/S220/15112009153.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x2yN9Cvtyec/SvIyf9QSv5I/AAAAAAAAACU/E7-RTVU1R2s/s72-c/Screenshot-15.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
