creating applications with grails, angular js and spring security

32
Creating applications with Grails, Angular JS and Spring Security Álvaro Sánchez-Mariscal

Upload: alvaro-sanchez-mariscal

Post on 08-Jan-2017

4.930 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Creating applications with Grails, Angular JS and Spring Security

Creating applications with Grails, Angular JS and Spring Security

Álvaro Sánchez-Mariscal

Page 2: Creating applications with Grails, Angular JS and Spring Security

Álvaro Sánchez-Mariscal Software Engineer Grails Development Team @alvaro_sanchez [email protected]

Page 3: Creating applications with Grails, Angular JS and Spring Security
Page 4: Creating applications with Grails, Angular JS and Spring Security

OCI is the new home of Grails More at ociweb.com/grails

Page 5: Creating applications with Grails, Angular JS and Spring Security

Grails 3 update

Page 6: Creating applications with Grails, Angular JS and Spring Security

Grails 3 status update

• v3.1.4 is the latest stable version.

• v3.2 is the current development version.

• Older versions:

• v3.0.15 for 3.0.x line.

• v2.5.4 for 2.5.x line.

Page 7: Creating applications with Grails, Angular JS and Spring Security

Grails 3.0 recap• New architecture.

• Spring Boot, Gradle, profiles.

• Same philosophy.

• Conventions, DRY, plugins.

Page 8: Creating applications with Grails, Angular JS and Spring Security

Grails 3.1 recap• Spring Boot 1.3, Spring 4.2.

• Massive improvements to profiles.

• Packaging and publishing.

• REST and Angular JS profile.

• JSON views.

• GORM 5.

Page 9: Creating applications with Grails, Angular JS and Spring Security

Grails 3.1 recap

• GORM 5.

• Hibernate 3, 4 and 5.

• MongoDB 3

• Neo4j 2.3

• Cassandra

Page 10: Creating applications with Grails, Angular JS and Spring Security

What’s coming in Grails 3.2?• GORM 6.

• GORM REST Client.

• Non-blocking GORM API.

• MongoDB 3.0 Async driver support.

• GORM Multi Tenancy Support.

• AngularJS scaffolding.

• Dynamic and static.

Page 11: Creating applications with Grails, Angular JS and Spring Security

… and in Grails 3.3• Netty-based Profile.

• Low memory footprint, non-blocking.

• Support for controllers, REST, GORM and Angular JS.

• PostgreSQL Async Support.

• Lightweight GORM-SQL abstraction.

Page 12: Creating applications with Grails, Angular JS and Spring Security

Upcoming conferences• Greach 2016.

• Madrid, Spain. April 8-9.

• http://greachconf.com

Page 13: Creating applications with Grails, Angular JS and Spring Security

Upcoming conferences• GR8Conf EU 2016.

• Copenhagen, Denmark. June 1-3.

• http://gr8conf.eu

Page 14: Creating applications with Grails, Angular JS and Spring Security

Upcoming conferences• G3 Summit.

• Fort Lauderdale, Florida, USA.

• Nov 28 - Dec 1, 2016.

• https://g3summit.com

Page 15: Creating applications with Grails, Angular JS and Spring Security

Join the community

slack-signup.grails.org

Page 16: Creating applications with Grails, Angular JS and Spring Security

Creating REST API’s with Grails

Page 17: Creating applications with Grails, Angular JS and Spring Security

The REST Profile

• Targeted at building REST applications.

• REST Specific plugins and commands.

• No GSP, asset pipeline, UI plugins.

• JSON / Markup views instead.

Page 18: Creating applications with Grails, Angular JS and Spring Security

The REST Profile

• Profile specific commands:

• create-domain-resource - creates an

@Resource domain

• create-restful-controller - creates a RestfulController

Page 19: Creating applications with Grails, Angular JS and Spring Security

The REST Profile• Statically compiled, extensible JSON views:

json.person{name"bob"}

{"person":{"name":"bob"}}

Page 20: Creating applications with Grails, Angular JS and Spring Security

Create the project

$ grails create-app -profile rest-api -features hibernate,json-views todo

| Application created at /tmp/todo

Page 21: Creating applications with Grails, Angular JS and Spring Security

REST Domain classpackage com.exampleimport grails.rest.Resource@Resource(uri = '/todos', formats = ['json']) class Todo { String description boolean completed}

Page 22: Creating applications with Grails, Angular JS and Spring Security

RESTful Controllerpackage com.exampleimport grails.rest.RestfulControllerclass TodoController extends RestfulController { static responseFormats = ['json'] TodoController() { super(Todo) } def pending() { respond Todo.findAllByCompleted(false), view: 'index' } }

Page 23: Creating applications with Grails, Angular JS and Spring Security

URL Mappings

“/todos"(resources:"todo") "/pending"(controller: 'todo', action: 'pending')

Page 24: Creating applications with Grails, Angular JS and Spring Security

JSON Viewimport com.example.Todomodel { Todo todo} json { hal.links(todo) id todo.id description todo.description completed todo.completed}

Page 25: Creating applications with Grails, Angular JS and Spring Security

Working with the Angular JS profile

Page 26: Creating applications with Grails, Angular JS and Spring Security

The Angular JS Profile

• Extends the REST profile.

• Adds project setup for AngularJS.

• Code generation for AngularJS.

• Scaffolding coming soon.

Page 27: Creating applications with Grails, Angular JS and Spring Security

The Angular JS Profile• Profile specific commands:

• create-ng-controller

• create-ng-service

• create-ng-domain

• create-ng-directive

• create-ng-component

• create-ng-module

Page 28: Creating applications with Grails, Angular JS and Spring Security

Create the project

$ grails create-app -profile angular -features hibernate,json-views todo

| Application created at /tmp/todo

Page 29: Creating applications with Grails, Angular JS and Spring Security

Adding Security with Spring Security REST

Page 30: Creating applications with Grails, Angular JS and Spring Security

Spring Security REST• Compatibility layer over Spring Security Core.

• Login and logout REST endpoints.

• Token validation filter.

• Stateless by default, with JWT (signed and encrypted)

• Memcached, Redis, GORM and Grails Cache token storages.

• Implicit grant support through 3rd party providers.

• RFC 6750 Bearer Token support.

Page 31: Creating applications with Grails, Angular JS and Spring Security

Create the project

$ grails create-app -profile angular -features hibernate,json-views,security todo

| Application created at /tmp/todo

Page 32: Creating applications with Grails, Angular JS and Spring Security

Dziękuję bardzo!

Álvaro Sánchez-Mariscal