authentication against google in java

Google, Yahoo and others allows to authenticate users using OpenID protocol. Some pages are here and openid4j .

In my last post I have mentioned about google data libraries which is actually APIs for most of the google services, including to authenticate users and much more. GData libraries are let’s say higher level layer which handles all the openid pain for you. 2 simple lines of code and you are authenticate 🙂

Here is simple example

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.majecek.gdata</groupId>
 <artifactId>gdata_testing</artifactId>
 <version>1.0-SNAPSHOT</version>
 <packaging>jar</packaging>
 <name>gdata_testing</name>
 <url>http://maven.apache.org</url>
 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

<repositories>
<repository>
<id>mandubian-mvn</id>
<url>http://mandubian-mvn.googlecode.com/svn/trunk/mandubian-mvn/repository</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>com.google.gdata</groupId>
 <artifactId>gdata-calendar-2.0</artifactId>
 <version>1.41.3</version>
 </dependency>
 <dependency>
 <groupId>com.google.gdata</groupId>
 <artifactId>gdata-core-1.0</artifactId>
 <version>1.41.3</version>
 </dependency>
 </dependencies>
 </project>

Simple java project:

package com.majecek.gdata;
 import com.google.gdata.client.GoogleService;
 import com.google.gdata.client.calendar.CalendarService;
 import com.google.gdata.util.AuthenticationException;

public class App
 {
 public static void main( String[] args )
 {
 GoogleService myService = new CalendarService("some_apps");
 try {
 myService.setUserCredentials("userLogin".concat("@gmail.com"), "password");
 //if success then succes authentication occures
 System.out.println("success authentication");
 } catch (AuthenticationException e) {
 //if not then invalid credentials has been set
 //invalid username or password
 System.out.println("invalid authentication");
 }
 }
}

Example can be downloaded from google code repository. It is maven project.

I have updated and uploaded this example to github. Read README.

The bigest advantage is that we don’t need to handle any “openid” tricks, just creates service against google service (in my example Calendar) and call “setUserCredentials” which already authenticate user.

Credits go also @Petr Olivka


google data libraries in maven

I wanted to create new project and used google data libraries (com.google.gdata…) and connect with maven2.

Even though Google has these libraries as opensource, it is not in maven repository. Anyway there is project which added these google libraries into maven into google code.

Here is example of pom.xml (repository & libary dependency)

<project> ..

<repositories>
<repository>
 <id>mandubian-mvn</id>
 <url>http://mandubian-mvn.googlecode.com/svn/trunk/mandubian-mvn/repository</url>
 </repository>
</repositories>
.......
<dependencies>
 <dependency>
  <groupId>com.google.gdata</groupId>
  <artifactId>gdata-calendar-2.0</artifactId>
  <version>1.41.3</version>
 </dependency>
 <dependency>
  <groupId>com.google.gdata</groupId>
  <artifactId>gdata-core-1.0</artifactId>
  <version>1.41.3</version>
  </dependency>
</dependencies>
....
</project>

As you can see you can add google libraries according your needs. If you don’t know the full name and version of the library you want to use – check it here .


How to sync google contacts with ical and iPhone

From MacOSx 10.5.3 (I guess) and up you can sync your google contacts with your iPhone.

Go to Address Book -> Preferences -> Accounts (tab) -> Synchronize with Google.

Synchronization will happened when you connect your iPhone to your mac and itunes starts backing up your iPhone. It will grab contacts and if there are some conflicts it will let you know.

BTW it works in both ways – now you can just modify your Address Book in mac and changes will occur in iPhone same as in gmail.


software pack

PenDrive Linux

There are many situations when you need to have clean installation and be sure that it is without any trojans and viruses. Also that connection will be encrypted and so on…

There are many live-distros with linux which you can boot and you have clean instance. How about running linux without rebooting withing windows ? 

You can do that by setting linux on flash drive and including QEMU (virtualization software).  You can read more here.

 

Want to have more search options when doing google search ?

Install Google FX Adds as Greasemonkey plugin and you will get many new features. You can read more here.


App Engine supports JAVA, thank you Google !

Big day was yesterday 7th April in AppEngine world.

Their most requested feature has been delivered by google folks. They support not only Python but now also Java.

Read more here.


Syncing Google Calendar with Outlook, iCal, Thunderbirds and others

Google has created caldav which now allows you to 2-way sync.

For detailed info read lifehacker.