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

Creating applications with Grails, Angular JS and Spring Security

Jan 08, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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