Spring Security in Google App Engine

Engineering | Luke Taylor | August 02, 2010 | ...

Spring Security is well-known for being highly customizable, so for my first attempt at working with Google App Engine, I decided to create a simple application which would explore the use of GAE features by implementing some core Spring Security interfaces. In this article we'll see how to:

  • Authenticate using Google Accounts.
  • Implement "on-demand" authentication when a user accesses a secured resource.
  • Supplement the information from Google Accounts with application-specific roles.
  • Store user account data in an App Engine datastore using the native API.
  • Setup access-control restrictions based on the roles assigned to users.
  • Disable the accounts of specific users to prevent access.

You should already be familiar with deploying applications to GAE. It doesn't take long to get a basic application up and running and you'll find lots of guidance on this on the GAE website.

Sample Application

The application is very simple and is built using Spring MVC. There is a welcome page deployed at the application root, and you can progress to a "home page", but only after authenticating and registering with the application. You can try out a version deployed in GAE here.

The registered users are stored as GAE datastore entities. On first authenticating, new users are redirected to a…

GORM Gotchas (Part 3)

Engineering | Peter Ledbrook | July 28, 2010 | ...

It's great to hear that people are finding these articles useful, so it's with great pleasure that I add another to the series. This time I'm going to talk about associations again, but with the focus on when they are loaded into memory.

Update 2 Aug 2010 I have added more information on eager fetching with one-to-many relationships because there are some issues you need to be aware of.

It's cool to be lazy

One of the first things people learn about GORM relationships is that they are loaded lazily by default. In other words, when you fetch a domain instance from the database, none of its relations will be loaded…

Spring MVC 3 Showcase

Engineering | Keith Donald | July 22, 2010 | ...

Since the big Spring 3 release last year, I've been working on a number of application development projects and extracting "showcases" of various framework features. These "showcases" are not reference applications or tutorials, they're more like acceptance tests for specific framework capabilities. After seeing a showcase, you should have a good idea of what the technology can do.

The first showcase I've put together is for Spring MVC 3, our web framework. It includes a sample project, along with a supporting slide presentation and screencast. After digging in, you should have a good…

Grails tooling improvements in SpringSource Tool Suite 2.3.3 M2

Engineering | Andy Clement | July 19, 2010 | ...

The recently released STS 2.3.3 M2 introduced a series of enhancements to our Grails support for Eclipse. In this article I'll be discussing what you can expect to find if you try it out (grab it here: SpringSource Tool Suite).

Groovy-Eclipse

The grails tools actually build on and extend the Groovy-Eclipse support, which is developed by the same team at SpringSource. Earlier this year the Groovy-Eclipse tools won 'Best Open Source Developer Productivity Tool' at Eclipse-Con 2010. You can read more about the latest enhancements in the recent Groovy-Eclipse 2.0.2 release here: New and Noteworthy. I'm not going to focus on Groovy-Eclipse here, but some highlights from that release were:
  • refactoring support: now supporting extract method, extract constant, extract local variable
  • improvements in code formatting and indentation
Now, onto Grails!

Getting a new perspective

There is now a new Grails perspective to better organize the views and widgets we have been adding to STS. You can open the perspective in the normal way (Window>OpenPerspective>Grails). In the new perspective the first thing to notice is that the Eclipse project explorer is open, rather than the package explorer. The project explorer is using a custom content provider that shows a view of a grails project that should be more familiar to a grails developer:
Grails Perspective
New labels and icons are in place for the groups of similar entities: domain objects, controllers, views, etc. However the biggest change is the new plugins folder. Previously when working with a grails project the plugin dependencies were tricky to see in the UI, being hidden in the classpath container and via some Eclipse linked source folder entries. Now in the project explorer it is much more obvious what the application dependencies are.

Also, related to plugins, we have a new Grails Plugin Project wizard. This is very similar to the Grails Project Wizard, but instead of running create-app, it will cause the create-plugin command to run. With this new wizard and the new support we have for local (inplace) plugins, it is much easier to develop your application following a plugin oriented architecture…

Spring AMQP 1.0.0.M1 Released

Releases | Mark Fisher | July 17, 2010 | ...

We are pleased to announce that the first milestone release of the Spring AMQP 1.0 project is now available for both Java and .NET!

Download it now: Spring AMQP for Java | Spring AMQP for .NET

Spring AMQP makes common Spring idioms available to developers who are building AMQP-based messaging solutions. For example, building a messaging application that uses RabbitMQ as a broker will feel quite similar to building an application based on Spring's JMS support. To learn more about the project, visit the Spring AMQP Homepage. There you will find links to the Reference Manual, Forum, Issue Tracker…

Spring Roo 1.1.0.M2 Released

Engineering | Ben Alex | July 16, 2010 | ...

I'm pleased to announce we've just released Spring Roo 1.1.0.M2 (download here). We've also concurrently released SpringSource Tool Suite 2.3.3.M2, which offers the latest integration with this new Spring Roo release. For production use we recommend you continue to use Spring Roo 1.0.2, although we know a very large number of people are happily using the Roo 1.1.0 development releases as well.

What's New?

So, what's included in the new Spring Roo 1.1.0 Milestone 2? Well, there's 140 fixes, improvements and enhancements since Milestone 1. Some of the highlights include:

More Add-On Discovery and Management Features

Spring Roo 1.1.0.M2 also features…

New Milestone Update for SpringSource Tool Suite: 2.3.2.M2

Releases | Adam Fitzgerald | July 16, 2010 | ...

SpringSource has just released a new milestone version of SpringSource Tool Suite: 2.3.2.M2. STS provides the best Eclipse-powered development environment for building Spring and Grails powered enterprise applications. Here are some highlights from the release:

This is also the first time we are providing bundles based on Eclipse 3.5 and 3.6. If you aren't quite ready to try the cutting edge milestone release, then you can always download the 2.3.2.RELEASE version.

You can also get community support in the Spring Development Tools support forums. If you want to provide direct technical feedback, open a JIRA issue against the SpringSource Tool…

Introducing the Flex Addon for Spring Roo

Engineering | Jeremy Grelle | July 14, 2010 | ...

Recently we released the first milestone of the Flex Addon for Spring Roo as a part of the Spring BlazeDS Integration 1.5.0.M1 distribution. This addon aims to bring the productivity and usability benefits of Spring Roo to the development of Spring-based RIAs with Flex. The below 15 minute screencast (split into two parts) serves as a quick introduction to the addon and its capabilities. Watch as we go from installation of the addon to a fully functional Flex application backed by Spring in just a handful of commands.


Part 1 walks through the initial download and installation of the addon, as well as initial setup of a Spring Flex project using the Spring Roo integration in SpringSource Tool Suite.


Part 2 demonstrates use of the "flex remoting" commands to generate and update Flex UI scaffolding backed by Spring and Hibernate.

5x startup performance boost in Virgo milestone M02

Engineering | Glyn Normington | July 08, 2010 | ...

Virgo 2.1.0.M02-incubator is available for download. Apart from completing the "getting started guide", this milestone dramatically reduces startup time - by as much as 5x on some systems.

This should be a further incentive for users of dm Server to migrate to Virgo: Virgo is the codebase for future development, has more liberal licensing, and now provides much faster startup.

Measurements

We measured elapsed time for a warm startup (i.e. without -clean) of the Virgo web server and compared milestone M02 to M01.

On a quad-core Intel Xeon 2.66 GHz machine, startup reduced from 68 to 12 seconds, an…

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all