<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Spartan Java&#187; Security</title>
	<atom:link href="http://www.spartanjava.com/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spartanjava.com</link>
	<description>Simple yet powerful Java programming</description>
	<lastBuildDate>Wed, 25 Nov 2009 15:26:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Asynchronous logging with log4j</title>
		<link>http://www.spartanjava.com/2009/asynchronous-logging-with-log4j/</link>
		<comments>http://www.spartanjava.com/2009/asynchronous-logging-with-log4j/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 15:26:37 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java logging]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=52</guid>
		<description><![CDATA[In case you are not doing it already, using asynchronous logging is generally a good idea. You don&#8217;t want your application to slow down if the server IO is a little behind flushing all that logging to the filesystem. By making it asynchronous your application can continue running without having to wait for the log [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/asynchronous-logging-with-log4j/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Obovweb source code &#8211; a Google Appengine sample</title>
		<link>http://www.spartanjava.com/2009/obovweb-source-code-a-google-appengine-sample/</link>
		<comments>http://www.spartanjava.com/2009/obovweb-source-code-a-google-appengine-sample/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:50:43 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Web related]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[dwr]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hmac]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[implementation details]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[obov]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=37</guid>
		<description><![CDATA[Someone asked me about the implementation details of the Google Appengine sample I published a few weeks ago (http://obovweb.appspot.com/). Well, you can get a hold of the source code here.
There&#8217;s not much to tell, apart from the specific HMAC-SHA1 implementation (which you can check out in Obovs source code) it&#8217;s a very simple JSP/DWR application.
]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/obovweb-source-code-a-google-appengine-sample/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blocking multiple clicks real easy</title>
		<link>http://www.spartanjava.com/2009/blocking-multiple-clicks-real-easy/</link>
		<comments>http://www.spartanjava.com/2009/blocking-multiple-clicks-real-easy/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 19:57:25 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web related]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[multiple clicks]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=31</guid>
		<description><![CDATA[I&#8217;ve faced this problem a few times before, but this time I decided to find a generic solution to it. I needed to prevent users from clicking action links in a web application multiple times and therefore triggering some server side action a lot of times when only one time was enough/needed.
After looking around for [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/blocking-multiple-clicks-real-easy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trying out Google Appengine &#8211; OTP generation app</title>
		<link>http://www.spartanjava.com/2009/trying-out-google-appengine-otp-generation-app/</link>
		<comments>http://www.spartanjava.com/2009/trying-out-google-appengine-otp-generation-app/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 21:29:53 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Web related]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[dwr]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[otp]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=29</guid>
		<description><![CDATA[I decided to try out the new Java based version of Google Appengine. So i wrote a very simple web app that allows the user to generate one time passwords (OTP) using the HMAC-SHA1 algortihm (see OATH).
You can check it out at http://obovweb.appspot.com. As the name suggests its based on my obov library.

Anyway, back to [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/trying-out-google-appengine-otp-generation-app/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using SSH or SFTP resources from a Java app</title>
		<link>http://www.spartanjava.com/2009/using-ssh-or-sftp-resources-from-a-java-app/</link>
		<comments>http://www.spartanjava.com/2009/using-ssh-or-sftp-resources-from-a-java-app/#comments</comments>
		<pubDate>Fri, 22 May 2009 12:13:49 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sftp]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=28</guid>
		<description><![CDATA[There are many commercial SSH client libraries for Java, but it was hard to find a good open source one. Finally I stumbled upon SSHTools and I have to say it works wonderfully and the API is clean and simple.

For example the following code snippet connects to a SFTP server and downlads a file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SshClient ssh [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/using-ssh-or-sftp-resources-from-a-java-app/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>PHP &amp; Java interoperable encryption</title>
		<link>http://www.spartanjava.com/2009/php-java-interoperable-encryption/</link>
		<comments>http://www.spartanjava.com/2009/php-java-interoperable-encryption/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 15:53:21 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=24</guid>
		<description><![CDATA[I recently faced the problem of encrypting something in PHP and decrypting it using Java, this proved to be a little more of a challenge than what it initially seemed like.
In any case, the secret layed in the padding, Java uses by default a PCKS5 padding algorithm and PHP does not.
Here is a sample of [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2009/php-java-interoperable-encryption/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>obov v1.1.0 released</title>
		<link>http://www.spartanjava.com/2008/obov-v110-released/</link>
		<comments>http://www.spartanjava.com/2008/obov-v110-released/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 18:27:14 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[obov]]></category>
		<category><![CDATA[otp]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=17</guid>
		<description><![CDATA[A new version of obov is available for download. Some nice new features were added:

Methods to generate passwords using the HMAC-SHA1 algorithm
A handy utility method to generate secret keys (seeds) based on any given string

Go get it!
]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2008/obov-v110-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>obov v1.0.0 released</title>
		<link>http://www.spartanjava.com/2008/obov-v100-released/</link>
		<comments>http://www.spartanjava.com/2008/obov-v100-released/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 20:21:48 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[hmac]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[obov]]></category>
		<category><![CDATA[otp]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[sha1]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=15</guid>
		<description><![CDATA[obov stands for OATH Based OTP validator. It’s a 100% pure Java library that provides simple to use methods to validate (and related utilities) one time passwords generated by OATH compliant devices.

We have released the first version of obov, including support for HMAC-SHA1 event based OTP validation (RFC 4226). Visit obov&#8217;s homepage, download it, and [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2008/obov-v100-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authenticate users using i5/OS (AS400) credentials</title>
		<link>http://www.spartanjava.com/2008/authenticate-users-using-i5os-as400-credentials/</link>
		<comments>http://www.spartanjava.com/2008/authenticate-users-using-i5os-as400-credentials/#comments</comments>
		<pubDate>Mon, 12 May 2008 18:33:21 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[as/400]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[i5]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=10</guid>
		<description><![CDATA[The folks at IBM have a nice API to use i5/OS (AS400) stuff from Java code. Check it out at http://www-03.ibm.com/systems/i/software/toolbox/index.html.
What I particularly find very useful and have used often is to validate user names and passwords with the AS400 authentication services. The following code validates a userName and password.


1
2
3
4
5
6
7
8
9
10
11
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400SecurityException;
...
   String [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2008/authenticate-users-using-i5os-as400-credentials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authenticating users using Unix or Windows credentials</title>
		<link>http://www.spartanjava.com/2008/authenticating-users-using-unix-or-windows-credentials/</link>
		<comments>http://www.spartanjava.com/2008/authenticating-users-using-unix-or-windows-credentials/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 12:42:28 +0000</pubDate>
		<dc:creator>ricardoz</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.spartanjava.com/?p=9</guid>
		<description><![CDATA[It&#8217;s usually very nice, and sometimes a requirement, to validate usernames and passwords using existing credentials. And in most situations big frameworks or single sign-on systems are just damn overkill and complex.
If you need to check your users credentials via an existing Unix system (that supports PAM) or a Windows domain controller check out  [...]]]></description>
		<wfw:commentRss>http://www.spartanjava.com/2008/authenticating-users-using-unix-or-windows-credentials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
