<?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'><id>tag:blogger.com,1999:blog-4920427582902542838</id><updated>2009-12-17T20:19:36.403+05:30</updated><title type='text'>F a c i l e L o g i n</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default?start-index=26&amp;max-results=25'/><author><name>Prabath</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>195</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-6823085188570104666</id><published>2009-12-03T19:49:00.001+05:30</published><updated>2009-12-04T14:42:02.097+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Identity'/><title type='text'>Identity patterns and anti-patterns in real world web services</title><content type='html'>@ Apache Asia Roadshow 2009 ~ Colombo ~ 03rd Nov&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_2640767"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/prabathsiriwardena/identity-patterns-and-anitpatterns-in-real-world-web-services" title="Identity patterns and anit-patterns in real world web services"&gt;Identity patterns and anit-patterns in real world web services&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=stonehenge-091203080324-phpapp01&amp;stripped_title=identity-patterns-and-anitpatterns-in-real-world-web-services" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=stonehenge-091203080324-phpapp01&amp;stripped_title=identity-patterns-and-anitpatterns-in-real-world-web-services" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-6823085188570104666?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/6823085188570104666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=6823085188570104666' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6823085188570104666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6823085188570104666'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/12/identity-patterns-and-anit-patterns-in.html' title='Identity patterns and anti-patterns in real world web services'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-1014231248276487229</id><published>2009-11-29T18:56:00.002+05:30</published><updated>2009-11-29T19:01:14.640+05:30</updated><title type='text'>Blog from your iPhone / iPod</title><content type='html'>BlogPress is a nice free tool you can use to blog from your iPod/iPhone it self - if this appears on my blog - then it works :)&lt;br /&gt;&lt;br /&gt;&lt;img src='http://lh5.ggpht.com/_K2WLYAmEH8g/SxJ2taSZRkI/AAAAAAAAApc/yPUmRhGIyeQ/iphone_photo.jpg' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-1014231248276487229?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/1014231248276487229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=1014231248276487229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1014231248276487229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1014231248276487229'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/blog-from-your-iphone-ipod.html' title='Blog from your iPhone / iPod'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-3054083405326260187</id><published>2009-11-28T20:03:00.002+05:30</published><updated>2009-11-28T20:08:49.064+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPod'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='EC2'/><title type='text'>Manage your EC2 instances from your iPhone / iPod</title><content type='html'>I came accross &lt;a href="http://iphone.wareseeker.com/iawsmanager-lite-1.0.1.app/42e1838532"&gt;this&lt;/a&gt; nice app for iPhone / iPod Touch - which helps you connecting to Amazon Cloud- and it's FREE.&lt;br /&gt;&lt;br /&gt;Only weekness was - the way it accepts credentials - one way it's more convenient - but in other, you have to pass your credentias over the network in  cleartext - and the app will store those internally.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2730/4140954306_f816b9e0af.jpg" width="334" height="500" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2536/4140955060_277893ca00.jpg" width="334" height="500" alt=" " /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-3054083405326260187?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/3054083405326260187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=3054083405326260187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/3054083405326260187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/3054083405326260187'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/manage-your-ec2-instances-from-your.html' title='Manage your EC2 instances from your iPhone / iPod'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-5677436715424302954</id><published>2009-11-27T09:41:00.002+05:30</published><updated>2009-11-27T10:04:22.356+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Caffaine</title><content type='html'>Caffaine is the codename of the new, upgraded version of Google search engine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mashable.com/2009/08/10/google-caffeine/"&gt;This &lt;/a&gt;explains how it performs against the old one.&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NU5cKDryjy0&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/NU5cKDryjy0&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If you want to have an early look &lt;a href="http://www.taranfx.com/blog/try-new-google-search-caffeine"&gt;hear &lt;/a&gt;are the steps.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/google1.png" height="510px" width="690px" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/google2.png" height="510px" width="690px"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/google3.png" height="510px" width="690px"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-5677436715424302954?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/5677436715424302954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=5677436715424302954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/5677436715424302954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/5677436715424302954'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/google-caffaine.html' title='Google Caffaine'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-8215498864801140485</id><published>2009-11-21T21:49:00.004+05:30</published><updated>2009-11-21T21:59:40.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPod'/><category scheme='http://www.blogger.com/atom/ns#' term='DZone'/><title type='text'>Adding DZone to iPhone / iPod Touch</title><content type='html'>I was looking for an aplication or an add-on to iPod/Safari where I could post a link to DZone - from the corresponding web site it self.&lt;br /&gt;&lt;br /&gt;Failing to find one - I followed the following work-around - which worked perfectly for me - so, thought of sharng it for the benefit of others.&lt;br /&gt;&lt;br /&gt;1. Open up Safari and go to http://www.dzone.com&lt;br /&gt;&lt;br /&gt;2. Add a bookmark to it - and set the Title of the bookmark as - 'Submit to DZone'&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/dzone1.png" /&gt;&lt;br /&gt;3. Now - tap on the Bookmarks link, as in the image shown below - click 'Edit' and select 'Submit to DZone'.&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/dzone2.png" /&gt;&lt;br /&gt;4. Remove the current Address of the 'Submit to DZone' bookmark and set the following..&lt;pre name="code" class="html"&gt;javascript:window.loaction='http://www.dzone.com/links/add.html?url='+escape(window.location)+'&amp;title='+escape(document.title)+'&amp;description='+escape(document.title)&lt;/pre&gt;5. Now - go to any web site you want - and to submit that link to DZone - just tap on the Bookmarks link on the bottom of the browser and select 'Submit to DZone'.&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/dzone2.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-8215498864801140485?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/8215498864801140485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=8215498864801140485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/8215498864801140485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/8215498864801140485'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/adding-dzone-to-iphone-ipod-touch.html' title='Adding DZone to iPhone / iPod Touch'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-9046379811092274056</id><published>2009-11-21T08:58:00.003+05:30</published><updated>2009-11-21T09:07:45.400+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>First look at Google Chrome OS</title><content type='html'>First we need to download the Chrome OS VMWare image from &lt;a href="http://discuss.gdgt.com/google/chrome-os/general/Download-Chrome-OS-VMWare-image/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To run this - we need to have VMWare Workstation - a 7 days trial version availbale from &lt;a href="http://www.vmware.com/go/tryworkstation"&gt;here &lt;/a&gt;to download.&lt;br /&gt;&lt;br /&gt;Now - you need to wait hours and hours to get the trial version license key from VMWare. Instead of that use this - M142T-1034J-M8280-0KA8H-A49PC. If you are curious about this - here is the &lt;a href="http://blogs.vmware.com/workstation/2009/10/addressing-the-overwhelming-demand-for-vmware-workstation-7-free-30-day-trial-available.html"&gt;news &lt;/a&gt;behind that.&lt;br /&gt;&lt;br /&gt;All set - setup your image with the VMWare Workstaion - steps &lt;a href="http://blogs.vmware.com/workstation/2009/11/google-chrome-os-running-on-vmware-workstation.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/chrome2.jpg" height="516px" width="690px"/&gt;&lt;br /&gt;That's it - now you can login with your GMail account to your OS :)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/chrome1.jpg" height="516px" width="690px"/&gt;&lt;br /&gt;Not bad at all - how about using an OpenID instead...&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://www.pcmag.com/article2/0,2817,2356137,00.asp"&gt;this&lt;/a&gt; for more info - "11 Things You Need to Know About Google's Chrome OS".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-9046379811092274056?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/9046379811092274056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=9046379811092274056' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/9046379811092274056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/9046379811092274056'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/first-look-at-google-chrome-os.html' title='First look at Google Chrome OS'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-7980232595702688092</id><published>2009-11-20T06:41:00.004+05:30</published><updated>2009-11-20T06:51:30.543+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rampart'/><title type='text'>http://RampartFAQ.COM</title><content type='html'>We started with &lt;a href="http://RampartFAQ.COM"&gt;http://RampartFAQ.COM&lt;/a&gt; few months back as an effort towards helping the open source community around axis2/rampart. This post summarises all the posts there, as of now.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/rampartfaq.png" /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Basics&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;1.&lt;a href="http://blog.rampartfaq.com/2009/08/what-is-rampart.html"&gt;What is Rampart?&lt;/a&gt;&lt;br /&gt;2.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-configure-rampart-in-axis2.html"&gt;How to configure Rampart in Axis2?&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-run-rampart-samples-with-apache.html"&gt;How to run Rampart samples with Apache Tomcat?&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-enable-ssl-on-tomcat.html"&gt;How to enable SSL on Tomcat?&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://blog.rampartfaq.com/2009/08/how-does-nonce-and-timestamp-get.html"&gt;How does the nonce and the timestamp get generated for hashed passwords in UsernameToken?&lt;/a&gt;&lt;br /&gt;6.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-create-wildcard-certificates.html"&gt;How to create wildcard certificates with java keytool?&lt;/a&gt;&lt;br /&gt;7.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-importexport-certificates-using.html"&gt;How to import/export certificates using Java keytool?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Intermediate&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;1.&lt;a href="http://blog.rampartfaq.com/2009/11/how-to-use-axis2-dynamic-client-to.html"&gt;How to use Axis2 Dynamic Client to invoke Secured Web Services?&lt;/a&gt;&lt;br /&gt;2.&lt;a href="http://blog.rampartfaq.com/2009/08/how-password-callback-handlers-work-in.html"&gt;How password Callback Handlers work in Rampart?&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-ask-for-hashed-password-in.html"&gt;How to ask for a hashed password in security policy?&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-delegate-identity-using-actas-in.html"&gt;How identity delegation works with ActAs in WS-Trust 1.4?&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://blog.rampartfaq.com/2009/08/how-does-soap-message-encryption-work.html"&gt;How SOAP message encryption works?&lt;/a&gt;&lt;br /&gt;6.&lt;a href="http://blog.rampartfaq.com/2009/08/what-is-assymetric-binding.html"&gt;What is Assymetric Binding?&lt;/a&gt;&lt;br /&gt;7.&lt;a href="http://blog.rampartfaq.com/2009/08/would-timestamp-validation-fail-when.html"&gt;Would timestamp validation fail when servers and clients running in different timezones?&lt;/a&gt;&lt;br /&gt;8.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-secure-web-service-with_18.html"&gt;How to secure a web service with UsernameToken + HTTPS?&lt;/a&gt;&lt;br /&gt;9.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-enable-ssl-on-wamp.html"&gt;How to enable SSL on WAMP?&lt;/a&gt;&lt;br /&gt;10.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-dump-out-jks-private-key.html"&gt;How to dump out JKS private key?&lt;/a&gt;&lt;br /&gt;11.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-create-certificate-authority.html"&gt;How to create a Certificate Authority with OpenSSL on Windows?&lt;/a&gt;&lt;br /&gt;12.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-secure-web-services-with-http.html"&gt;How to secure web services with HTTP Basic Authentication?&lt;/a&gt;&lt;br /&gt;13.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-do-usernametoken-authentication.html"&gt;How to do UsernameToken authentication for web services based on AD?&lt;/a&gt;&lt;br /&gt;14.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-secure-web-service-with.html"&gt;How to secure a web service with UsernameToken?&lt;/a&gt;&lt;br /&gt;15.&lt;a href="http://blog.rampartfaq.com/2009/08/can-we-have-multiple-provate-keys-in.html"&gt;Can we have multiple private keys in a single JKS?&lt;/a&gt;&lt;br /&gt;16.&lt;a href="http://blog.rampartfaq.com/2009/08/vs-vs.html"&gt;&amp;lt;ramp:user&amp;gt; vs &amp;lt;ramp:encryptionUser&amp;gt; vs &amp;lt;ramp:userCertAlias&amp;gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Advance&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;1.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-call-web-service-having-ssl.html"&gt;How to call web services having SSL mutual authentication enabled?&lt;/a&gt;&lt;br /&gt;2.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-setup-secure-conversation-with.html"&gt;How to setup a secure conversation with an STS?&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-ceate-new-jks-with-existing.html"&gt;How to ceate a new JKS with an existing private key and a signed certificate?&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://blog.rampartfaq.com/2009/08/can-we-have-per-service-policy-based.html"&gt;Can we have per service, policy based results validators?&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-apply-policies-at-binding.html"&gt;How to apply policies at binding hierarchy?&lt;/a&gt;&lt;br /&gt;6.&lt;a href="http://blog.rampartfaq.com/2009/08/can-we-avoid-duplicating-crypto-info.html"&gt;Can we avoid duplicating crypto info added to RampartConfig in different services.xml files?&lt;/a&gt;&lt;br /&gt;7.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-enable-ntlm-authentication-in.html"&gt;How to enable NTLM authentication in Axis2 client?&lt;/a&gt;&lt;br /&gt;8.&lt;a href="http://blog.rampartfaq.com/2009/08/what-are-rampart-handlers-in-inflow-and.html"&gt;What are the Rampart handlers in inflow and what do they do?&lt;/a&gt;&lt;br /&gt;9.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-do-proxy-authenticaion-at.html"&gt;How to do proxy authenticaion at runtime - in Axis2 client or stub?&lt;/a&gt;&lt;br /&gt;10.&lt;a href="http://blog.rampartfaq.com/2009/08/what-are-policy-subjects.html"&gt;What are policy subjects and where goes security policy assertions?&lt;/a&gt;&lt;br /&gt;11.&lt;a href="http://blog.rampartfaq.com/2009/08/how-token-referencing-works-in-ws.html"&gt;How Token referencing works in WS-Security?&lt;/a&gt;&lt;br /&gt;12.&lt;a href="http://blog.rampartfaq.com/2009/08/how-to-add-secured-and-non-secured-end.html"&gt;How to add a secured and a non secured end point to the same service?&lt;/a&gt;&lt;br /&gt;13.&lt;a href="http://blog.rampartfaq.com/2009/09/how-to-enable-security-for-jax-ws.html"&gt;How to enable security for JAX-WS services with Axis2/Rampart?&lt;/a&gt;&lt;br /&gt;14.&lt;a href="http://blog.rampartfaq.com/2009/11/how-to-generate-non-secure-response-to.html"&gt;How to generate a non-secured response to a secured request?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Common Errors&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;1.&lt;a href="http://blog.rampartfaq.com/2009/08/orgapacheaxis2axisfault-first-element.html"&gt;org.apache.axis2.AxisFault: First Element must contain the local name, Envelope , but found html&lt;/a&gt;&lt;br /&gt;2.&lt;a href="http://blog.rampartfaq.com/2009/08/javasecurityunrecoverablekeyexception.html"&gt;java.security.UnrecoverableKeyException: Cannot recover key&lt;/a&gt;&lt;br /&gt;3.&lt;a href="http://blog.rampartfaq.com/2009/08/orgapachewssecuritywssecurityexception.html"&gt;org.apache.ws.security.WSSecurityException: An unsupported signature or encryption algorithm was used&lt;/a&gt;&lt;br /&gt;4.&lt;a href="http://blog.rampartfaq.com/2009/08/error-referenced-security-token-could.html"&gt;[ERROR] Referenced security token could not be retrieved (Reference "#CertId-238146")&lt;/a&gt;&lt;br /&gt;5.&lt;a href="http://blog.rampartfaq.com/2009/08/javasecuritynosuchalgorithmexception.html"&gt;java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPPADDING&lt;/a&gt;&lt;br /&gt;6.&lt;a href="http://blog.rampartfaq.com/2009/08/orgapacheaxis2phaseresolverphaseexcepti.html"&gt;org.apache.axis2.phaseresolver.PhaseException: Did not find the desired phase 'Security' while deploying handler 'PolicyBasedSecurityOutHandler'&lt;/a&gt;&lt;br /&gt;7.&lt;a href="http://blog.rampartfaq.com/2009/08/faq-001-javasecurityinvalidkeyexception.html"&gt;java.security.InvalidKeyException: Illegal key size or default parameters&lt;/a&gt;&lt;br /&gt;8.&lt;a href="http://blog.rampartfaq.com/2009/08/orgapacherampartrampartexception.html"&gt;org.apache.rampart.RampartException: The timestamp could not be validated&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-7980232595702688092?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/7980232595702688092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=7980232595702688092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7980232595702688092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7980232595702688092'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/httprampartfaqcom.html' title='http://RampartFAQ.COM'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-1664756461142757743</id><published>2009-11-17T03:58:00.003+05:30</published><updated>2009-11-17T04:01:18.109+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novell'/><category scheme='http://www.blogger.com/atom/ns#' term='LDAP'/><category scheme='http://www.blogger.com/atom/ns#' term='eDirectory'/><title type='text'>Integrating Novell eDirectory with WSO2 Identity Server</title><content type='html'>You can download an evaluation copy of Novell eDirectory from &lt;a href="http://www.novell.com/products/edirectory/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Then go through this &lt;a href="http://blog.facilelogin.com/2009/06/connecting-wso2-identity-server-20-to.html"&gt;blog post&lt;/a&gt; which explains - how to setup an LDAP based user store with Identity Server.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/novell-is.png" /&gt;&lt;br /&gt;You need to follow exact the same steps - except - you need to have the settings from the above image while installing Novell eDirectory - for the Identity Server LDAP configuration as shown below.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/novell-is-2.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-1664756461142757743?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/1664756461142757743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=1664756461142757743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1664756461142757743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1664756461142757743'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/integratng-novell-edirectory-with-wso2.html' title='Integrating Novell eDirectory with WSO2 Identity Server'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-4278177940093470446</id><published>2009-11-14T17:02:00.007+05:30</published><updated>2009-11-14T17:24:40.565+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='S3'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='CouldFront'/><title type='text'>Amazon CloudFront with Blogger blogs as a Content Delivery Network</title><content type='html'>Web sites like CNN, Yahoo and many more with high traffic use a Content Delivery Network like Akamai - so end users have to spend less time waiting for the web page to load on their screens.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://cache.facilelogin.com/Cloud_front_thumb2.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Amazon CloudFront delivers the content using a global network of edge locations. Requests for your objects are automatically routed to the nearest edge location, so content is delivered with the best possible performance.&lt;br /&gt;&lt;br /&gt;This blog post explains how to setup Amazon CloudFront with your blog.&lt;br /&gt;&lt;br /&gt;First you need to have an Amazon account and signed up for an S3 bucket.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.facilelogin.com/2009/11/hands-on-cloud-while-legs-on-earth.html"&gt;This&lt;/a&gt; explains everything you need to know - to set that up.&lt;br /&gt;&lt;br /&gt;Now - you have an S3 bucket - say facilelogin.&lt;br /&gt;&lt;br /&gt;Then - we need to sign up for a CloudFront account.&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://aws.amazon.com/cloudfront/"&gt;http://aws.amazon.com/cloudfront&lt;/a&gt; and sign up with the same Amazon credentials you used before.&lt;br /&gt;&lt;br /&gt;Now - sign in to the CloudFront &lt;a href="https://console.aws.amazon.com/cloudfront/home"&gt;management console&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Click the link - Create Distribution.&lt;br /&gt;&lt;br /&gt;Set Origin as the S3 bucket you created earlier.&lt;br /&gt;&lt;br /&gt;Give a child domain of your blog as the CNAME [e.g. cache.facilelogin.com]&lt;br /&gt;&lt;br /&gt;This will create a CloudFront for the set S3 bucket.&lt;br /&gt;&lt;br /&gt;Once you highlight the distribution you created - you can see it's details on the bottom panel.&lt;br /&gt;&lt;br /&gt;Note down following.&lt;br /&gt;&lt;br /&gt;Domain Name : d2npqrbnybq989.cloudfront.net&lt;br /&gt;CNAME : cache.facilelogin.com&lt;br /&gt;&lt;br /&gt;Now - you need to add a CNAME record to your domain.&lt;br /&gt;&lt;br /&gt;I got my domain from Yahoo - so to add a CNAME record there, first sign in &lt;a href="http://smallbusiness.yahoo.com/services/index.php"&gt;here&lt;/a&gt;, and a CNAME record to your domain with,&lt;br /&gt;&lt;br /&gt;Source : cache.facilelogin.com [Value corresponding to the Amazon distribution CNAME]&lt;br /&gt;Destination : d2npqrbnybq989.cloudfront.net [Value corresponding to the Amazon distribution Domain Name]&lt;br /&gt;&lt;br /&gt;That's it - give some time to get your CNAME updated.&lt;br /&gt;&lt;br /&gt;Now - add whatever content you want to - the Amazon S3 bucket and refer to content from you blog as http://cache.facilelogin.com/[resource name].&lt;br /&gt;&lt;br /&gt;The image shown in the post is loaded from the S3 bucket - managed by Amazon CloudFront.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-4278177940093470446?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/4278177940093470446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=4278177940093470446' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4278177940093470446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4278177940093470446'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/amazon-cloudfront-with-blogger-blogs-as.html' title='Amazon CloudFront with Blogger blogs as a Content Delivery Network'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-4902201685509399624</id><published>2009-11-14T04:34:00.003+05:30</published><updated>2009-11-14T05:21:28.857+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='S3'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='EC2'/><title type='text'>Hands on CLOUD while legs on EARTH</title><content type='html'>&lt;img src="http://farm3.static.flickr.com/2690/4101067827_b4287c3cfc.jpg" width="500" height="498" alt="GlobeHands" /&gt;&lt;br /&gt;1. &lt;b&gt;Sign up for S3 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://aws.amazon.com/s3/"&gt;http://aws.amazon.com/s3/&lt;/a&gt; and sign up for an Amazon S3 account.&lt;br /&gt;&lt;br /&gt;Amazon S3 is storage on cloud.It provides a simple web services interface that can be used to store and retrieve any amount of data.&lt;br /&gt;&lt;br /&gt;Read more on S3 from &lt;a href="http://aws.amazon.com/s3/faqs/"&gt;http://aws.amazon.com/s3/faqs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;b&gt;Tools &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once you created the storage on cloud - there are tools which let you talk to the S3 iterface from your local computer.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cloudberrylab.com/?id=7"&gt;CloudBerry Explorer&lt;/a&gt; is the one I use, it makes managing files in Amazon S3 storage EASY. By providing a user interface to Amazon S3 accounts, files, and buckets, CloudBerry lets you manage your files on cloud just as you would on your own local computer.&lt;br /&gt;&lt;br /&gt;3. &lt;b&gt;S3 with CloudBerry Explorer&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Start CloudBerry Explorer --&gt; File --&gt; Amazon S3 Account --&gt; New Account&lt;br /&gt;&lt;br /&gt;Here you need to provide, an Access Key, a Secret Key and a Display. Make sure you tick the 'Use SSL' tick box.&lt;br /&gt;&lt;br /&gt;To find your Access Key and the Secret Key - first you need to login to &lt;a href="http://aws.amazon.com/account/"&gt;http://aws.amazon.com/account/&lt;/a&gt; with your Amazon credentials and click on the link for 'Security Credentials'&lt;br /&gt;&lt;br /&gt;Once you are there you can see both your Access Key ID and Secret Access Key listed under Access Keys.&lt;br /&gt;&lt;br /&gt;Copy thoe keys from there and give those to CloudBerry Explorer.&lt;br /&gt;&lt;br /&gt;Once you create the new account in CloudBerry Explorer - it will be listed under 'Source'. &lt;br /&gt;&lt;br /&gt;Select your account from 'Source' - CloudBerry Explorer will talk to your S3 account and will display the buckets you created.&lt;br /&gt;&lt;br /&gt;4. &lt;b&gt;Buckets&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Just like a bucket holds water, Amazon buckets are like a container for your files. You can name your buckets the way you like but it should be unique across the Amazon system.&lt;br /&gt;&lt;br /&gt;To create a Bucket from CloudBerry - click the 'New Bucket' icon in blue on the top row.&lt;br /&gt;&lt;br /&gt;Amazon S3 offers storage in the United States and in Europe (within the EU). You can specify where you want to store your data when you create your Amazon S3 buckets.&lt;br /&gt;&lt;br /&gt;Keep in mind that the bucket namespace is shared by all users of the system. So the name you give needs to be unique accross the system.&lt;br /&gt;&lt;br /&gt;Once you created the bucket - that will be displayed in the left pane of the CloudBerry Explorer.&lt;br /&gt;&lt;br /&gt;Right click on the bucket and select 'Web URL' - that will show the web url to access your bucket [e.g. &lt;a href="http://facilelogin.s3.amazonaws.com/"&gt;http://facilelogin.s3.amazonaws.com/&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Type that on a web browser and try to access it - you won't be.&lt;br /&gt;&lt;br /&gt;Now you need to set the access control setting for your bucket.&lt;br /&gt;&lt;br /&gt;Once again right click on the bucket and select ACL and then ACL Settings.&lt;br /&gt;&lt;br /&gt;If yu want all the users to have read access to your bucket - then select 'All Users' and set 'Read' permission.&lt;br /&gt;&lt;br /&gt;Now - try to access the link from the web browser.&lt;br /&gt;&lt;br /&gt;To move data from your local machine to the S3 bucket in the cloud - just drag and drop the files from the right pane to the S3 bucket on the left pane.&lt;br /&gt;&lt;br /&gt;5. &lt;b&gt;Sign up for EC2&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud.&lt;br /&gt;&lt;br /&gt;Just as Amazon Simple Storage Service (Amazon S3) enables storage in the cloud, Amazon EC2 enables “compute” in the cloud.&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://aws.amazon.com/ec2/"&gt;http://aws.amazon.com/ec2/&lt;/a&gt; and sign up for an EC2 acount. You can use same Amazon credentials you used to create the S3 accont.&lt;br /&gt;&lt;br /&gt;Read more on EC2 from &lt;a href="http://aws.amazon.com/ec2/faqs/"&gt;http://aws.amazon.com/ec2/faqs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. &lt;b&gt;Amazon Management console&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now, go to htp://aws.amazon.com/console/ - select EC2 from right hand side combo box and 'Sign in to the AWS Console'.&lt;br /&gt;&lt;br /&gt;The AWS Management Console gives you a quick, global picture of your cloud computing environment so that you can see what resources you’re operating and conveniently manage those resources&lt;br /&gt;&lt;br /&gt;7. &lt;b&gt;Starting an EC2 instance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once you sign in to the Amazon Management console, you will see a dashboard.&lt;br /&gt;&lt;br /&gt;To start using Amazon EC2 you will want to launch a virtual server, known as an Amazon EC2 instance.&lt;br /&gt;&lt;br /&gt;Click on the link 'Launch Instances'.&lt;br /&gt;&lt;br /&gt;Now - this will display a set of available AMI(Amazon Machine Image)s.&lt;br /&gt;&lt;br /&gt;Select any AMI you want - I selected 'Basic Fedora Core 8'.&lt;br /&gt;&lt;br /&gt;In the next screen - set the number of instances as - 1.&lt;br /&gt;&lt;br /&gt;Select create new key pair.&lt;br /&gt;&lt;br /&gt;Public/private key pairs allow you to securely connect to your instance after it launches. To create a key pair, enter a name and click Create &amp; Download your Key Pair. &lt;br /&gt;&lt;br /&gt;You will then be prompted to save the private key to your computer. Note, you only need to generate a key pair once — not each time you want to deploy an Amazon EC2 instance.&lt;br /&gt;&lt;br /&gt;Let's also create a new security group - accept the default settings there only giving access to SSH port.&lt;br /&gt;&lt;br /&gt;Security groups determine whether a network port is open or blocked on your instance(s).&lt;br /&gt;&lt;br /&gt;Once you are done with all tha - you'll be back on the dashboard and under 'Instances' - you can see the instance you started now.&lt;br /&gt;&lt;br /&gt;Click on that instance and you'll see all the details about it listed down - and copy the Public DNS value[e.g: ec2-75-101-193-101.compute-1.amazonaws.com]&lt;br /&gt;&lt;br /&gt;Now - you have a Fedora instance running on the cloud.&lt;br /&gt;&lt;br /&gt;Let's see how to login in to it from the local machine.&lt;br /&gt;&lt;br /&gt;8. &lt;b&gt;Putty&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I am using Putty under Windows, to SSH in to my Fedora instance running on the cloud.&lt;br /&gt;&lt;br /&gt;First we need to setup the private key with it. [Rember we download a key while launching the AMI].&lt;br /&gt;&lt;br /&gt;Start Putty --&gt; Session --&gt; Set Host Name - the Public DNS of our running Fedora instance.&lt;br /&gt;&lt;br /&gt;Go to Connection/SSH/Auth - set the private key file for authentication.&lt;br /&gt;&lt;br /&gt;Here it requires the private key in PPK format - but what we downloaded is in PEM format.&lt;br /&gt;&lt;br /&gt;Now we need to do a conversion - we can use puttygen for that.&lt;br /&gt;&lt;br /&gt;Once done set the PPK file as the private key file for authentication in Putty.&lt;br /&gt;&lt;br /&gt;Now, go to Connection/Data - set 'root' as the Auto-login user name.&lt;br /&gt;&lt;br /&gt;Now - we are done - click on 'Open' to connect to your Fedora instance running on EC2.&lt;br /&gt;&lt;br /&gt;9. Launching a Windows Instance&lt;br /&gt;&lt;br /&gt;Hear we try to launch a Windows Instance and try to remote login in to it.&lt;br /&gt;&lt;br /&gt;Before launching a Windows AMI - let's first create new Security Group.&lt;br /&gt;&lt;br /&gt;From the main dashboard - you can select 'Security Groups' and then create a new secuirty group.&lt;br /&gt;&lt;br /&gt;Once created - allow RDP connection for this security group - to allow windows remote login.&lt;br /&gt;&lt;br /&gt;Now - in the same way we did before - launch a Windows AMI - but make sure you set it's security group - the one we just created with RDP connections allowed.&lt;br /&gt;&lt;br /&gt;To get the Windows admin password to login through remote login - highlight the Windows instance from Dashboard/Instances - select Instance Actions/Windows Actions/Get Windows Admin Password.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-4902201685509399624?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/4902201685509399624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=4902201685509399624' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4902201685509399624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4902201685509399624'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/hands-on-cloud-while-legs-on-earth.html' title='Hands on CLOUD while legs on EARTH'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-8822656658470665994</id><published>2009-11-12T19:02:00.005+05:30</published><updated>2009-11-12T21:05:20.482+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Hashing'/><title type='text'>Hashing alone is NOT a life saver</title><content type='html'>Hashing is a one way - irreversible algorithm which is used to store passwords in databases.&lt;br /&gt;&lt;br /&gt;So - nobody other than you know what your actual password is.&lt;br /&gt;&lt;br /&gt;When you create your password - your password will go through the hashing algorithm and the hashed password will be stored in the database.&lt;br /&gt;&lt;br /&gt;When you try to login - you enter your password in clear text - then the application will calculate the hash of the entered password and will match that with the hashed password already stored in the database. If matches, you will let in.&lt;br /&gt;&lt;br /&gt;How does this make your password safe?&lt;br /&gt;&lt;br /&gt;Say somebody hacked in to the database.But - still he cant see your password in clear text. So - he can't login to your account. Hacker will only get access to the hashed password - but not to the password in clear text. Keep in mind - you can't never login with the hashed password. That is bacause - what ever you enter as the password will go through a hashing algorithm and that hashed value will be matched with hashed password in the database. In case if you enter the value you found from the database - which is actually the hashed password - then that will be rehashed by tha application and try to match with the hashed password from the database - which will obviously fail.&lt;br /&gt;&lt;br /&gt;But - is this safe enough ?&lt;br /&gt;&lt;br /&gt;The hacker who has access to your database can still replace your hashed password with a hash he caculated with a clear text known to him. Then he can login to your account with the clear text known to him - because it will be evaluated against the hash value he replaced in the database.&lt;br /&gt;&lt;br /&gt;That is; hashing alone is never safe.&lt;br /&gt;&lt;br /&gt;Whenever you store anything in clear text as a hashed value - you need to store it as a salted hash.&lt;br /&gt;&lt;br /&gt;In cryptography, a salt comprises random bits that are used as one of the inputs to a key derivation function. The other input is usually a password or passphrase in clear text. Output is the 'salt' value. Now - the application will caculate the hash value of password in clear text + the salt value and store that in the database.&lt;br /&gt;&lt;br /&gt;Application will also store the salt value - but for best security, the salt value should be kept secret, separate from the password database.&lt;br /&gt;&lt;br /&gt;When a user enters his password for login - the application will retreive the salt value and caculate the hash over both the salt and the entered password - and will match the result with the hash value stored in the password database.&lt;br /&gt;&lt;br /&gt;In case a hacker having access to the database replaces the user's password with a hash value of a clear text known to him - still the password verification will fail - bacause now the hash is not just caculated with the password along - it's from both the password and the salt value. In this case if the hacker wants to access user account he should be able to gain access to the database which stores hash values as well.&lt;br /&gt;&lt;br /&gt;So - the bottom line is - hashing along is never secure - salted hashing much secure - but all that will make it's hard to break - but never stop from breaking fully.&lt;br /&gt;&lt;br /&gt;Although you store clear text passwords as salted hashes - it's never an alternative to not to secure access to the database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-8822656658470665994?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/8822656658470665994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=8822656658470665994' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/8822656658470665994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/8822656658470665994'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/hashing-along-is-not-life-saver.html' title='Hashing alone is NOT a life saver'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-6728161439336157529</id><published>2009-11-11T07:34:00.000+05:30</published><updated>2009-11-11T07:34:43.220+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='Stonehenge'/><category scheme='http://www.blogger.com/atom/ns#' term='ApacheCon'/><title type='text'>Interoperability Through Community</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_2470582"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=stonehenge-apachecon-091110200120-phpapp01&amp;stripped_title=stonehenge-2470582" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=stonehenge-apachecon-091110200120-phpapp01&amp;stripped_title=stonehenge-2470582" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-6728161439336157529?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/6728161439336157529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=6728161439336157529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6728161439336157529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6728161439336157529'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/interoperability-through-community.html' title='Interoperability Through Community'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-7145563945827715910</id><published>2009-11-10T20:37:00.003+05:30</published><updated>2009-11-10T20:39:07.093+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Secured SOA</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_2466439"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=secured-soa-091110090408-phpapp02&amp;stripped_title=secured-soa-2466439" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=secured-soa-091110090408-phpapp02&amp;stripped_title=secured-soa-2466439" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-7145563945827715910?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/7145563945827715910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=7145563945827715910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7145563945827715910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7145563945827715910'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/11/secured-soa.html' title='Secured SOA'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-4612945347239991654</id><published>2009-10-16T11:01:00.004+05:30</published><updated>2009-10-16T11:33:12.896+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><title type='text'>WSO2 SOA Workshop - Santa Clara, California</title><content type='html'>&lt;a href="http://wso2.com/events/2009-us-soa-workshop/"&gt;&lt;img src="http://farm3.static.flickr.com/2538/4015499823_afeff904e0_o.png" width="652" height="192" alt="wso2-soa1" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ESBs and SOA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Most enterprises start with creating basic services and connecting them with an Enterprise Service Bus when first adopting SOA. This session will talk about the wider usage of an ESB in SOA infrastructure and the decoupling of communication layers. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOA Security &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As many businesses move ahead with SOA, security and identity management need to be made available as a service in the architecture in a consistent and reusable way across all applications. This session will focus on implementing key security standards and identity management for SOA. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mashups and Business Process Management for SOA &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This session will introduce Mashups as an enterprise integration tool and will demonstrate the various technologies in use for service compositions in SOAs. Focusing on both automated processes and looking at how BPM fits into people-based processes, this session will also examine Open Standards for BPM, how the BPMN and BPEL standards fit together. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOA Governance&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Governance is a vital part of any SOA, and has an impact on runtime as well as design-time. Some major components of SOA governance include a registry, policy, monitoring and testing procedures. This session will discuss some predefined patterns and recommendations along with service life-cycles, resource life-cycles, metadata storage, policies and validations. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOA with C, C++, PHP and more&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;As C, C++ and other such languages have been around for many years, it is predominant in legacy systems. This session will explore how These languages can be used to implement and integrate systems that use SOA principles to provide great business value to enterprise applications. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOA Enterprise Architecture Patterns&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This session will provide in-depth knowledge on how to implement an SOA solution using the basic elements in an SOA infrastructure discussed in other sessions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-4612945347239991654?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/4612945347239991654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=4612945347239991654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4612945347239991654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4612945347239991654'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/10/wso2-soa-workshop-santa-clara.html' title='WSO2 SOA Workshop - Santa Clara, California'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-165806154028678609</id><published>2009-07-24T04:07:00.000+05:30</published><updated>2009-07-24T04:09:39.816+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSCON'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='Governance'/><category scheme='http://www.blogger.com/atom/ns#' term='Digital Identity'/><title type='text'>The Secured Enterprise: Leverage OpenID with Web Services</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1761319"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscon2009-090723170703-phpapp01&amp;stripped_title=the-secured-enterprise-leverage-openid-with-web-service" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oscon2009-090723170703-phpapp01&amp;stripped_title=the-secured-enterprise-leverage-openid-with-web-service" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-165806154028678609?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/165806154028678609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=165806154028678609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/165806154028678609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/165806154028678609'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/07/secured-enterprise-leverage-openid-with.html' title='The Secured Enterprise: Leverage OpenID with Web Services'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-4823840211941474247</id><published>2009-07-12T08:27:00.001+05:30</published><updated>2009-07-12T08:30:12.894+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Identity'/><title type='text'>[VIDEO] Identity &amp; Cloud Services</title><content type='html'>&lt;iframe src="http://www.microsoft.com/belux/msdn/nl/chopsticks/player.aspx?id=1130&amp;e=1" frameborder="0" width="493px" height="385px" scrolling="no" marginheight="0" marginwidth="0" &gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-4823840211941474247?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/4823840211941474247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=4823840211941474247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4823840211941474247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/4823840211941474247'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/07/video-identity-cloud-services.html' title='[VIDEO] Identity &amp; Cloud Services'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-5844759816704571651</id><published>2009-07-06T00:21:00.002+05:30</published><updated>2009-07-11T10:54:12.411+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebLogic'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='Identity Server'/><title type='text'>Deploying WSO2 Identity Server 2.0 over WebLogic</title><content type='html'>Yumani explains &lt;a href="http://yumani.blogspot.com/2009/07/setting-up-wso2-is-on-weblogic-server.html"&gt;here&lt;/a&gt; all what you need to know...&lt;br /&gt;&lt;br /&gt;WSO2 Identity Server 2.0 is available to download from &lt;a href="http://wso2.org/downloads/identity"&gt;here...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-5844759816704571651?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/5844759816704571651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=5844759816704571651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/5844759816704571651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/5844759816704571651'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/07/deploying-wso2-identity-server-20-over.html' title='Deploying WSO2 Identity Server 2.0 over WebLogic'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-2349720049527683734</id><published>2009-07-04T08:09:00.000+05:30</published><updated>2009-07-04T08:10:20.090+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>WSO2 SOA Summer School - SOA Governance by Asanka</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="http://widgets.clearspring.com/o/499d781e7a2ff8ce/4a4ebfc2b681e954/49a40d8b9c8624f5/21f51c8d/-cpid/a945cfaebc5e33c8/showTranscript/false" id="W499d781e7a2ff8ce4a4ebfc2b681e954" width="250" height="310"&gt;&lt;param name="movie" value="http://widgets.clearspring.com/o/499d781e7a2ff8ce/4a4ebfc2b681e954/49a40d8b9c8624f5/21f51c8d/-cpid/a945cfaebc5e33c8/showTranscript/false" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="allowNetworking" value="all" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-2349720049527683734?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/2349720049527683734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=2349720049527683734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/2349720049527683734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/2349720049527683734'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/07/wso2-soa-summer-school-soa-governance.html' title='WSO2 SOA Summer School - SOA Governance by Asanka'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-6314764276829503549</id><published>2009-07-03T11:48:00.001+05:30</published><updated>2009-07-03T11:51:30.989+05:30</updated><title type='text'>Security in SOA</title><content type='html'>&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNDY2MDE5NDg3NDgmcHQ9MTI*NjYwMTk1NDg2NCZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJnQ9Jm89NDQ*MTVjMjI*OWQ1NDViZGI5MmJlMzI5Mjc4MjNmYjkmb2Y9MA==.gif" /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1677128"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=summer-school-090702235033-phpapp01&amp;stripped_title=summer-school-security-in-soa" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=summer-school-090702235033-phpapp01&amp;stripped_title=summer-school-security-in-soa" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-6314764276829503549?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/6314764276829503549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=6314764276829503549' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6314764276829503549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6314764276829503549'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/07/security-in-soa.html' title='Security in SOA'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-1590374788492190496</id><published>2009-06-27T12:17:00.004+05:30</published><updated>2009-06-27T12:50:17.326+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><title type='text'>WSO2 SOA Summer School - Security in SOA : The brain friendly edition of complex security specs</title><content type='html'>I'll be doing the webinar, WSO2 SOA Summer School: Security in SOA on 2nd of July - next Thursday.&lt;br /&gt;&lt;br /&gt;As many businesses move ahead with SOA, security and identity management need to be made available as a service in the architecture in a consistent and reusable way across all applications. &lt;br /&gt;&lt;br /&gt;During this webinar I will focus on implementing key security standards and identity management for SOA with regards to two emerging user centric identities: OpenID &amp; Information Cards, and also XACML for fine-grained authorization.&lt;br /&gt;&lt;br /&gt;If you are yet to register - do it today from &lt;a href="http://wso2.org/training/security_in_soa"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope you'll enjoy this session and learn Security concepts in a brain friendly manner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-1590374788492190496?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/1590374788492190496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=1590374788492190496' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1590374788492190496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/1590374788492190496'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/wso2-soa-summer-school-security-in-soa.html' title='WSO2 SOA Summer School - Security in SOA : The brain friendly edition of complex security specs'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-6460758831463892020</id><published>2009-06-25T13:56:00.001+05:30</published><updated>2009-06-25T14:18:43.946+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><title type='text'>SOA Summer School: Scalable SOA by Samisa</title><content type='html'>Samisa will be doing a presentation on the $subject in few hours time.&lt;br /&gt;&lt;br /&gt;Serious business applications that demand high volumes of transactions are most often based on SOAs. Clustering technologies are critical for some of these deployments to help achieve load balancing and high availability. This session digs deep into the scaling techniques that can be used in SOA deployments that demand high throughput and high reliability.&lt;br /&gt;&lt;br /&gt;If you are yet to register - still its's open - further details &lt;a href="http://wso2.org/training/scalable_soa"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-6460758831463892020?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/6460758831463892020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=6460758831463892020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6460758831463892020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/6460758831463892020'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/soa-summer-school-scalable-soa-by.html' title='SOA Summer School: Scalable SOA by Samisa'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-803090557826870750</id><published>2009-06-23T11:29:00.008+05:30</published><updated>2009-06-23T12:03:56.418+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAML'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Extracting SAML assertions from a proxy service and adding them back to the service behind</title><content type='html'>&lt;a href="http://blog.facilelogin.com/2009/06/wso2-identity-server-claim-aware-proxy.html"&gt;This&lt;/a&gt; blog post explains how to do the intial setup with WSO2 ESB and the Identity Server to develop claim aware web services - please go through it first.&lt;br /&gt;&lt;br /&gt;There - we get the SAML Assertion to the proxy service.&lt;br /&gt;&lt;br /&gt;Here what we are going to do is - to extract SAML Assertions from the Security header of the incoming message and add those as a custom header to the message going to the actual service.&lt;br /&gt;&lt;br /&gt;First, please download the org.wso2.carbon.identity.samples.saml.mediator-2.0.0.SNAPSHOT.jar from &lt;a href="http://builder.wso2.org/~carbon/identity/23062009/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stop - the ESB if it's running already.&lt;br /&gt;&lt;br /&gt;Copy the above jar to [ESB_HOME]\webapps\ROOT\WEB-INF\plugins\console.&lt;br /&gt;&lt;br /&gt;Open [ESB_HOME]\webapps\ROOT\WEB-INF\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info and add the following entry to the end [one line].&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;org.wso2.carbon.identity.samples.saml.mediator,2.0.0.SNAPSHOT,file:plugins/org.wso2.carbon.identity.samples.saml.mediator-2.0.0.SNAPSHOT.jar,10,true&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Start the ESB with following.&lt;br /&gt;&lt;br /&gt;\&gt; wso2server.bat -cleanCache&lt;br /&gt;&lt;br /&gt;Now, you need to add the above mediator to the in sequence of your proxy service as a Class mediator.&lt;br /&gt;&lt;br /&gt;Following is the synapase configuration for the in/out sequences of the proxy service.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;syn:proxy name="test" transports="https http" startOnLoad="true" trace="disable"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;syn:target&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:inSequence&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:class name="org.wso2.carbon.identity.samples.saml.mediator.SAMLAttrMediator"/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:header xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="wsse:Security" action="remove"/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:log level="full"/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:send/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/syn:inSequence&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:outSequence&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;syn:send/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/syn:outSequence&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/syn:target&gt;&lt;br /&gt;&amp;lt;/syn:proxy&gt;&lt;br /&gt;&lt;/pre&gt;You can clearly see Class/Header/Log &amp; Send mediators are in the in-sequence and Send mediator in the out-sequence.&lt;br /&gt;&lt;br /&gt;Now - the question is how do we capture the SAML attributes from the actual service.&lt;br /&gt;&lt;br /&gt;You can call the following method from any service method to get the attributes in a HashMap.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;getAttributes(MessageContext.getCurrentMessageContext());&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Following is the code for getAttributes() method.&lt;pre name="code" class="java"&gt;&lt;br /&gt; private static final String USER_ATTRIBUTES_ELEMENT = "UserAttributes";&lt;br /&gt; private static final String USER_ATTRIBUTES_NS = "http://attributes.saml.axis2.org";&lt;br /&gt; private static final String ATTRIBUTE = "Attribute";&lt;br /&gt; private static final String ATTRIBUTE_NS = "AttributeNamespace";&lt;br /&gt; private static final String ATTRIBUTE_VALUE = "AttributeValue";&lt;br /&gt; public final static String SAML10_NS = "urn:oasis:names:tc:SAML:1.0:assertion";&lt;br /&gt; public final static String SAML11_NS = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1";&lt;br /&gt; public final static String SAML20_NS = "urn:oasis:names:tc:SAML:2.0:assertion";&lt;br /&gt;&lt;br /&gt; public Map&lt;String, String&gt; getAttributes(MessageContext messageContext) {&lt;br /&gt;  OMElement header = null;&lt;br /&gt;  OMElement userAttr = null;&lt;br /&gt;  Iterator&lt;OMElement&gt; iterator = null;&lt;br /&gt;  String samlNameSpace = null;&lt;br /&gt;&lt;br /&gt;  header = messageContext.getEnvelope().getHeader();&lt;br /&gt;  userAttr = header.getFirstChildWithName(new QName(USER_ATTRIBUTES_NS,&lt;br /&gt;    USER_ATTRIBUTES_ELEMENT));&lt;br /&gt;  iterator = userAttr.getChildrenWithName(new QName(SAML10_NS, ATTRIBUTE));&lt;br /&gt;&lt;br /&gt;  if (iterator.hasNext()) {&lt;br /&gt;   samlNameSpace = SAML10_NS;&lt;br /&gt;  } else {&lt;br /&gt;   iterator = userAttr.getChildrenWithName(new QName(SAML11_NS, ATTRIBUTE));&lt;br /&gt;   if (iterator.hasNext()) {&lt;br /&gt;    samlNameSpace = SAML11_NS;&lt;br /&gt;   } else {&lt;br /&gt;    iterator = userAttr.getChildrenWithName(new QName(SAML20_NS, ATTRIBUTE));&lt;br /&gt;    if (iterator.hasNext()) {&lt;br /&gt;     samlNameSpace = SAML20_NS;&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (samlNameSpace == null) {&lt;br /&gt;   // Unsupported SAML token type;&lt;br /&gt;   return null;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  Map&lt;String, String&gt; attributes;&lt;br /&gt;  attributes = new HashMap&lt;String, String&gt;();&lt;br /&gt;&lt;br /&gt;  while (iterator.hasNext()) {&lt;br /&gt;   OMElement attr = iterator.next();&lt;br /&gt;   OMElement attrValElement = null;&lt;br /&gt;   String attributeName = null;&lt;br /&gt;   String attributeValue = null;&lt;br /&gt;   attributeName = attr.getAttributeValue(new QName(ATTRIBUTE_NS));&lt;br /&gt;   attrValElement = attr.getFirstChildWithName(new QName(samlNameSpace, ATTRIBUTE_VALUE));&lt;br /&gt;   attributeValue = attrValElement.getText();&lt;br /&gt;   attributes.put(attributeName, attributeValue);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return attributes;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;Also make sure you import following packages as well.&lt;pre name="code" class="html"&gt;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.Map;&lt;br /&gt;import javax.xml.namespace.QName;&lt;br /&gt;import org.apache.axiom.om.OMElement;&lt;br /&gt;import org.apache.axis2.context.MessageContext;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-803090557826870750?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/803090557826870750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=803090557826870750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/803090557826870750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/803090557826870750'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/extracting-saml-assertions-from-proxy.html' title='Extracting SAML assertions from a proxy service and adding them back to the service behind'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-7166665035357634625</id><published>2009-06-19T23:11:00.002+05:30</published><updated>2009-06-19T23:14:20.955+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='Identity Server'/><title type='text'>WSO2 Identity Server 2.0 Overview</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_1609866"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wso2-identity-server-intro-090619124056-phpapp02&amp;stripped_title=wso2-identity-server-20-introduction" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wso2-identity-server-intro-090619124056-phpapp02&amp;stripped_title=wso2-identity-server-20-introduction" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-7166665035357634625?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/7166665035357634625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=7166665035357634625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7166665035357634625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/7166665035357634625'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/wso2-identity-server-20-overview.html' title='WSO2 Identity Server 2.0 Overview'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-3520824316025496158</id><published>2009-06-18T16:14:00.001+05:30</published><updated>2009-06-18T16:16:55.765+05:30</updated><title type='text'>SOA Summer School: SOA Enterprise Architecture Patterns by Asanka</title><content type='html'>Asanka will be doing a training on the $subject in few hours time.&lt;br /&gt;&lt;br /&gt;This session will provide in-depth knowledge on how to implement an SOA solution using the basic elements in an SOA infrastructure. There will be several enterprise SOA patterns mapped to real world and hypothetical business requirements. Implementation details will be practically explained using the WSO2 SOA platform.  &lt;br /&gt;&lt;br /&gt;If you are yet to register - still its's open - further details &lt;a href="http://wso2.org/training/soa_architecture_patterns"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-3520824316025496158?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/3520824316025496158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=3520824316025496158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/3520824316025496158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/3520824316025496158'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/soa-summer-school-soa-enterprise.html' title='SOA Summer School: SOA Enterprise Architecture Patterns by Asanka'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4920427582902542838.post-630380047271322872</id><published>2009-06-17T13:39:00.030+05:30</published><updated>2009-06-17T19:40:04.941+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='XACML'/><title type='text'>Guide to write XACML policies in WSO2 Identity Server 2.0 - Part - I</title><content type='html'>This blog post explains how to write policies in XACML for WSO2 Identity Server.&lt;br /&gt;&lt;br /&gt;A given policy has an identifier, a rule combining algorithm, a description, a target and a set of rules.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Policy PolicyId="urn:sample:xacml:2.0:samplepolicy"&lt;br /&gt;&amp;nbsp;&amp;nbsp;RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Description&gt;Sample XACML Authorization Policy.&amp;lt;/Description&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Target&gt;...&amp;lt;/Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Rule&gt;...&amp;lt;/Rule&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Policy&gt;&lt;br /&gt;&lt;/pre&gt;Since, a given Policy may contain multiple Rules, each of which may evaluate to different access control decisions, XACML needs some way of reconciling the decisions each makes.&lt;br /&gt;&lt;br /&gt;This is done through a collection of Combining Algorithms.&lt;br /&gt;&lt;br /&gt;Each algorithm represents a different way of combining multiple descisions evaluated through different rules into a single descision.&lt;br /&gt;&lt;br /&gt;Following rule combining algorithms are defined in XACML 2.0.&lt;pre name="code" class="html"&gt;&lt;br /&gt;urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:deny-overrides&lt;br /&gt;urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides&lt;br /&gt;urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable&lt;br /&gt;urn:oasis:names:tc:xacml:1.1:rule-combining-algorithm:ordered-denyoverrides&lt;br /&gt;urn:oasis:names:tc:xacml:1.1:rule-combining-algorithm:ordered-permitoverrides&lt;br /&gt;&lt;/pre&gt;when we have urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable as the rule combining alogorithm, it will pick the first rule applicable from the defined set of Rules.&lt;br /&gt;&lt;br /&gt;Once a XACML request being received at the PDP it needs to find a policy that applies to the corresponding request.&lt;br /&gt;&lt;br /&gt;To do this, XACML uses the element Target. &lt;br /&gt;&lt;br /&gt;A Target is basically a set of simplified conditions for the Subject, Resource and Action that must be met for a Policy or Rule to apply to a given request.&lt;br /&gt;&lt;br /&gt;Once a Target is defined directly under Policy element - it defines the set of conditions that must be met to pick that Policy.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Policy PolicyId="urn:sample:xacml:2.0:samplepolicy"&lt;br /&gt;&amp;nbsp;&amp;nbsp;RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Description&gt;Sample XACML Authorization Policy.&amp;lt;/Description&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Subjects&gt;...&amp;lt;/Subjects&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resources&gt;...&amp;lt;/Resources&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Actions&gt;...&amp;lt;/Actions&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Rule&gt;...&amp;lt;/Rule&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Policy&gt;&lt;br /&gt;&lt;/pre&gt;To make this very clear - let's go through an example.&lt;br /&gt;&lt;br /&gt;This policy will be picked for a request having, any Subject, any Action on Resource http://localhost:8280/services/echo/.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Policy PolicyId="urn:sample:xacml:2.0:samplepolicy"&lt;br /&gt;&amp;nbsp;&amp;nbsp;RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Description&gt;Sample XACML Authorization Policy.&amp;lt;/Description&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Subjects&gt; &amp;lt;AnySubject/&gt; &amp;lt;/Subjects&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resources&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resource&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"&gt;http://localhost:8280/services/echo/&amp;lt;/AttributeValue&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ResourceAttributeDesignator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataType="http://www.w3.org/2001/XMLSchema#string"/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ResourceMatch&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Resource&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Resources&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Actions&gt; &amp;lt;AnyAction/&gt; &amp;lt;/Actions&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Rule&gt;...&amp;lt;/Rule&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Policy&gt;&lt;br /&gt;&lt;/pre&gt;For the time being, let's not worry too much about &amp;lt;Resources/&gt; element.&lt;br /&gt;&lt;br /&gt;Let's see another example. Here the Target is applied to the Rule - not to the entire Policy it self.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Policy PolicyId="urn:sample:xacml:2.0:samplepolicy"&lt;br /&gt;&amp;nbsp;&amp;nbsp;RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"&lt;br /&gt;&amp;nbsp;&amp;nbsp;xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Description&gt;Sample XACML Authorization Policy.&amp;lt;/Description&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Rule Effect="Permit" RuleId="primary-access-rule"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Subjects&gt; &amp;lt;AnySubject/&gt; &amp;lt;/Subjects&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resources&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Resource&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;lt;ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match"&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;lt;AttributeValue&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;DataType="http://www.w3.org/2001/XMLSchema#string"&gt;http://localhost:8280/services/echo/&amp;lt;/AttributeValue&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;lt;ResourceAttributeDesignator &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;AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-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;DataType="http://www.w3.org/2001/XMLSchema#string"/&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;lt;/ResourceMatch&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Resource&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Resources&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Actions&gt; &amp;lt;AnyAction/&gt; &amp;lt;/Actions&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Target&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Rule&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Policy&gt;&lt;br /&gt;&lt;/pre&gt;I guess, that explains enough about &amp;lt;Policy/&gt; and &amp;lt;Target/&gt; elements.&lt;br /&gt;&lt;br /&gt;Let's move to the &amp;lt;Rule/&gt; element. You may recall, that I mentioned there can be multiple Rule elements per given Policy.&lt;br /&gt;&lt;br /&gt;Also - we discussed about Rule Combining Algorithms.&lt;br /&gt;&lt;br /&gt;Let's focus on the child elements of the Rule element.&lt;br /&gt;&lt;br /&gt;The way the Sun XACML engine determines whether a rule is applicable to an incoming request is by evaluating the Target and optional Condition (if it exists). &lt;br /&gt;&lt;br /&gt;These are ANDed together, and the rule's effect achieved if the ANDed value is TRUE.&lt;br /&gt;&lt;br /&gt;You know where Rule element fits in to a XACML policy - for the purpose of explaining, I'll just take out the isolated Rule element only - so keep in mind this is always within &amp;lt;Policy&gt; tags.&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Rule Effect="Permit" RuleId="primary-access-rule"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Target&gt;...&amp;lt;/Target&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Condition&gt;...&amp;lt;/Condition&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rule&gt;&lt;br /&gt;&lt;/pre&gt;A policy contains one or more Rules.&lt;br /&gt;&lt;br /&gt;Each rule has a RuleId and an Effect. &lt;br /&gt;&lt;br /&gt;An Effect is the intended consequence of a satisfied rule, which can be either "Deny" or "Permit." This means that if the rule is deemed applicable to an incoming service request, and the rule's conditions evaluate to TRUE, then the specified effect should be enforced.&lt;br /&gt;&lt;br /&gt;Since we already discussed about the &amp;lt;Target/&gt; element under the context of &amp;lt;Rule/&gt;, we'll skip it here.&lt;br /&gt;&lt;br /&gt;Let's focus on the &amp;lt;Condition/&gt; element.&lt;br /&gt;&lt;br /&gt;A Condition is a predicate that must be satisfied for a rule to be assigned its effect.&lt;br /&gt;&lt;br /&gt;Okay - a Target defines a set of constraints for a Rule. So - what does a Condition do? Let's differentiate Condition from Target.&lt;br /&gt;&lt;br /&gt;While Targets are appealing, frame-like expressions, they have a constrained logic which isn't always expressive enough to narrow down whether a policy is applicable to a service request. &lt;br /&gt;&lt;br /&gt;Hence, the need for Condition element arises. If either the policy Target or the Rule Target is not able to adequately express a constraint, a Condition can be added to a Rule.&lt;br /&gt;&lt;br /&gt;A Condition can only present within a Rule.&lt;br /&gt;&lt;br /&gt;If a Condition is intended to be applicable to the entire Policy, the Condition must be repeated in every Rule in that Policy.&lt;br /&gt;&lt;br /&gt;Let's go ahead with an example.&lt;br /&gt;&lt;br /&gt;We want to restrict users based on their attributes.&lt;br /&gt;&lt;br /&gt;Say - for example a given user has an accessList attribute - and we want to restrict access to a given resource based on the accessList.&lt;br /&gt;&lt;br /&gt;I'll take an isolated &amp;lt;Condition/&gt; element here...&lt;pre name="code" class="html"&gt;&lt;br /&gt;&amp;lt;Condition&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SubjectAttributeDesignator AttributeId="accessList" DataType="http://www.w3.org/2001/XMLSchema#string"/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"&gt;nurses&amp;lt;/AttributeValue&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"&gt;doctors&amp;lt;/AttributeValue&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Apply&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Apply&gt;&lt;br /&gt;&amp;lt;/Condition&gt;&lt;br /&gt;&lt;/pre&gt;Let's start from the inner most &amp;lt;Apply/&gt; element.&lt;br /&gt;&lt;br /&gt;It uses the string-bag function on two attributes.&lt;br /&gt;&lt;br /&gt;This bag function wraps a set of possible values for the attribute defined under &amp;lt;SubjectAttributeDesignator/&gt; element. In this case - possible values for the attribute 'accessList' should be either 'nurses' or 'doctors'.&lt;br /&gt;&lt;br /&gt;Now, let's look at the outer most &amp;lt;Apply/&gt; element. It uses string-at-least-one-member-of function which will be applied on the results of the inner function.&lt;br /&gt;&lt;br /&gt;In other words - final condition says - if you want to access the resource you have to be a member of 'doctors' or 'nurses'.&lt;br /&gt;&lt;br /&gt;This will basically conclude the part-1 of this series of blog posts. &lt;br /&gt;&lt;br /&gt;In the next blog post I would like to write about Attributes and Attribute Designators.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4920427582902542838-630380047271322872?l=blog.facilelogin.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.facilelogin.com/feeds/630380047271322872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4920427582902542838&amp;postID=630380047271322872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/630380047271322872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4920427582902542838/posts/default/630380047271322872'/><link rel='alternate' type='text/html' href='http://blog.facilelogin.com/2009/06/guide-to-write-xacml-policies-in-wso2.html' title='Guide to write XACML policies in WSO2 Identity Server 2.0 - Part - I'/><author><name>Prabath</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07123072033182771706'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>