SlideShare a Scribd company logo
Java EE Security API - JSR375: Getting Started
Java EE 8 : Java EE Security API
A G E N D A
JAVA EE
SECURITY
WHY 

UPDATE?
ALREADY

AVAILABLE?
JSR-375

SOTERIA
CONCEPTS
DEMO
• C4J
• Senior Java Web Developer, Java Coach
• JSR-375
• Java EE Security API Expert group member
• Java EE Believer
@rdebusscher
http://jsfcorner.blogspot.be
http://javaeesquad.blogspot.be
W H O A M I
RUDY DE BUSSCHER
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
W H Y U P D A T E ?
W H Y A N E W J S R ?
• Java EE Security is viewed as not portable,
abstract/confusing, antiquated
• Doesn't fit cloud app developer paradigm:
requires app server configuration
T E R M I N O L O G Y ?
• What is that "something" where identities are
stored?
• realm (Tomcat, some hints in Servlet spec)
• (auth) repository
• (auth) store
• login module (JAAS)
• identity manager (Undertow)
• authenticator (Resin, OmniSecurity, Seam security)
• authentication provider (Spring Security)
• Identity provider
J A V A E E S E C U R I T Y
• Each JSR has his 'own' way
• They look at each other, but ...
• No JSR exists to address security overall
• Security on the platform level
So what is standardised?
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
W H Y U P D A T E ?
J A S P I C
Java Authentication Service
Provider Interface for
Containers
• Java EE 6
• For custom logic
• BASIC/FORM/DIGEST
• Low Level (per request)
• Verbose
Java EE Security API - JSR375: Getting Started
Java Authorization
Service Provider
Contract for Containers
J A C C
• J2EE 1.4 ERA
• C.O.M.P.L.E.X.I.T.Y
• Application Server Wide
• No Role Mapping specified
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
G O A L S
J S R - 3 7 5
• EG discussions started March 2015
• EG Members
• EE API veterans: many JSRs, many years struggling with Security API
• 3rd party security framework creators/developers
• EE platform security implementers
• 10/2016 : EG Updated, switch Spec Lead
• March 13, 2017 : Early Draft Review
• May 25, 2017 : Public review
G O A L S
• Plug the portability holes
• Modernize
• Context Dependency Injection (CDI)
• Intercept at Access Enforcement Points: POJO methods
• Expression Language (EL)
• Enable Access Enforcement Points with complex rules
• App Developer Friendly
• Common security configurations not requiring server changes
• Annotation defaults not requiring XML
I D E A S
• Terminology
• API for Authentication Mechanism
• API for Identity Store
• API for Security Context
• API for Password Aliasing
• API for Role/Permission Assignment
• API for Authorization Interceptors
• + ...
JAVA EE 8
JAVA EE 9
S O T E R I A
• In Greek mythology, Soteria was the goddess of
safety and salvation.
• RI of JSR-375
• Should work on Java EE 7
• WildFly 10+
• Payara 4.1.1.161+
• TomEE 7.0.2+
• WebSphere Liberty 2016.9+
JASPIC JACC
SOTERIA
U S I N G
Existing blocks for authentication and authorization
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
C O N C E P T S
H T T P A U T H E N T I C A T I O N M E C H A N I S M
• How are credentials retrieved
• BASIC
• FORM
• classic j_security_check, ...
• CustomForm
• programmatic
• Custom
• For JAX-RS endpoints, ...
@CustomFormAuthenticationMechanismDefinition(

loginToContinue = @LoginToContinue(

loginPage="/login.xhtml",

errorPage=""

)

)
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
C O N C E P T S
I D E N T I T Y S T O R E
• Verify credentials
• LDAP
• DATABASE
• with configurable queries
• EMBEDDED (Soteria Only not in API)
• Easy for testing with hardcoded values
• Custom
• Whatever your need is
@LdapIdentityStoreDefinition(

url = "ldap://localhost:33389/",

baseDn = "uid=ldap,ou=apps,dc=jsr375,dc=net",

password = "changeOnInstall",

searchBase = "dc=jsr375,dc=net",

searchExpression = "(&(uid=%s)(objectClass=person))",

groupBaseDn = "ou=group,dc=jsr375,dc=net"

)
Demo
BASIC

IN MEMORY
Demo
FORM IN JSF
WITH LDAP
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
C O N C E P T S
T R I P L E A
• Authentication
• Verifying that a user is who she says she is.
• Authorisation
• He can execute the allowed actions within their privilege.
• Accounting
• Audit
M U L T I S T O R E
• Authentication / Authorisation
• From multiple sources!
• Examples
• Scenario 1
• Authentication : LDAP
• Authorisation : Database
M U L T I S T O R E ( 2 )
• Scenario 2
• Authentication : OAuth2
• Authentication : Limited to certain email Domain
• Authorization : ...
• Scenario 3
• Authentication : ...
• Authorisation : Database
• Authorisation (In Test) : Extra roles/permissions
I D E N T I T Y S T O R E H A N D L E R
• IdentityStoreHandler
• Handles multiple defined Identity Stores
• ValidationType on IdentityStore
• VALIDATE
• PROVIDE_GROUPS
@LdapIdentityStoreDefinition(

url = "ldap://localhost:33389/",

baseDn = "uid=ldap,ou=apps,dc=jsr375,dc=net",

password = "changeOnInstall",

searchBase = "dc=jsr375,dc=net",

searchExpression = "(&(uid=%s)(objectClass=person))",

groupBaseDn = "ou=group,dc=jsr375,dc=net",
useFor = ValidationType.VALIDATE

)
Demo
MULTI STORE
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
C O N C E P T S
E X T E N S I B I L I T Y
interface HttpAuthenticationMechanism
interface IdentityStore
interface IdentityStoreHandler
• Why Update?
• What is available?
• JSR-375
• Concepts
• Authentication Mechanism
• IdentityStore
• Authentication - Authorization
• Custom integration
• Security Context
C O N C E P T S
S E C U R I T Y C O N T E X T
Security

Context
Authentication

Mechanism
Identity

Store
Principal

Info for

Request
Authorization

Interceptors
U S E S D A T A
Users List
Subscribe and contribute
javaee-security-spec@javaee.groups.io
Github Soteria repository
Fork and play!
https://github.com/javaee-security-spec/soteria
G E T I N V O L V E D
Q & A
Ad

Recommended

PPTX
Spring boot
sdeeg
 
PDF
Oracle GoldenGate導入Tips
オラクルエンジニア通信
 
PPSX
Java & advanced java
BASAVARAJ HUNSHAL
 
PPTX
Spring framework in depth
Vinay Kumar
 
PDF
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
オラクルエンジニア通信
 
PPTX
Java fundamentals
HCMUTE
 
PPT
Spring Core
Pushan Bhattacharya
 
PPTX
Oracleのソース・ターゲットエンドポイントとしての利用
QlikPresalesJapan
 
PPTX
Boost your productivity with Scala tooling!
MeriamLachkar1
 
PPTX
Java tokens
shalinikarunakaran1
 
PDF
The Functional Programming Triad of Map, Filter and Fold
Philip Schwarz
 
PDF
Spring annotation
Rajiv Srivastava
 
PPTX
Java 8 - Features Overview
Sergii Stets
 
PPTX
Springboot Microservices
NexThoughts Technologies
 
PDF
database design intro(database)
welcometofacebook
 
PPTX
Introduction to GraphQL Presentation.pptx
Knoldus Inc.
 
PDF
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
 
PDF
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Markus Michalewicz
 
PPTX
Inheritance in Java
Tamanna Akter
 
PDF
Oracle GoldenGate FAQ
オラクルエンジニア通信
 
PDF
Zero Data Loss Recovery Applianceのご紹介
オラクルエンジニア通信
 
PPTX
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
DataWorks Summit
 
PDF
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
Insight Technology, Inc.
 
PDF
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 
PPTX
V$SQLとその周辺でER図を描いてみよう!
歩 柴田
 
PDF
Oracle Database Appliance X5-2 アップデート内容のご紹介
オラクルエンジニア通信
 
PPTX
Oracle EBS R12.2 - Deployment and System Administration
Mozammel Hoque
 
PDF
What is tackled in the Java EE Security API (Java EE 8)
Rudy De Busscher
 
PDF
Finally, EE Security API JSR 375
Alex Kosowski
 

More Related Content

What's hot (20)

PPTX
Boost your productivity with Scala tooling!
MeriamLachkar1
 
PPTX
Java tokens
shalinikarunakaran1
 
PDF
The Functional Programming Triad of Map, Filter and Fold
Philip Schwarz
 
PDF
Spring annotation
Rajiv Srivastava
 
PPTX
Java 8 - Features Overview
Sergii Stets
 
PPTX
Springboot Microservices
NexThoughts Technologies
 
PDF
database design intro(database)
welcometofacebook
 
PPTX
Introduction to GraphQL Presentation.pptx
Knoldus Inc.
 
PDF
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
 
PDF
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Markus Michalewicz
 
PPTX
Inheritance in Java
Tamanna Akter
 
PDF
Oracle GoldenGate FAQ
オラクルエンジニア通信
 
PDF
Zero Data Loss Recovery Applianceのご紹介
オラクルエンジニア通信
 
PPTX
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
DataWorks Summit
 
PDF
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
Insight Technology, Inc.
 
PDF
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 
PPTX
V$SQLとその周辺でER図を描いてみよう!
歩 柴田
 
PDF
Oracle Database Appliance X5-2 アップデート内容のご紹介
オラクルエンジニア通信
 
PPTX
Oracle EBS R12.2 - Deployment and System Administration
Mozammel Hoque
 
Boost your productivity with Scala tooling!
MeriamLachkar1
 
Java tokens
shalinikarunakaran1
 
The Functional Programming Triad of Map, Filter and Fold
Philip Schwarz
 
Spring annotation
Rajiv Srivastava
 
Java 8 - Features Overview
Sergii Stets
 
Springboot Microservices
NexThoughts Technologies
 
database design intro(database)
welcometofacebook
 
Introduction to GraphQL Presentation.pptx
Knoldus Inc.
 
Functional Domain Modeling - The ZIO 2 Way
Debasish Ghosh
 
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Markus Michalewicz
 
Inheritance in Java
Tamanna Akter
 
Oracle GoldenGate FAQ
オラクルエンジニア通信
 
Zero Data Loss Recovery Applianceのご紹介
オラクルエンジニア通信
 
YARN: the Key to overcoming the challenges of broad-based Hadoop Adoption
DataWorks Summit
 
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
Insight Technology, Inc.
 
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 
V$SQLとその周辺でER図を描いてみよう!
歩 柴田
 
Oracle Database Appliance X5-2 アップデート内容のご紹介
オラクルエンジニア通信
 
Oracle EBS R12.2 - Deployment and System Administration
Mozammel Hoque
 

Similar to Java EE Security API - JSR375: Getting Started (20)

PDF
What is tackled in the Java EE Security API (Java EE 8)
Rudy De Busscher
 
PDF
Finally, EE Security API JSR 375
Alex Kosowski
 
PPTX
Java ee 8 + security overview
Rudy De Busscher
 
PPTX
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
Werner Keil
 
PDF
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
Markus Eisele
 
PDF
Introduction to PicketLink
JBUG London
 
PPTX
Java2Days - Security for JavaEE and the Cloud
Werner Keil
 
PPTX
Utilize the Full Power of GlassFish Server and Java EE Security
Masoud Kalali
 
PPTX
Java EE 8 security and JSON binding API
Alex Theedom
 
PPTX
Security Architecture of the Java Platform (http://www.javaday.bg event - 14....
Martin Toshev
 
PPTX
Intro to Apache Shiro
Claire Hunsaker
 
PPTX
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Martin Toshev
 
PPTX
Security Аrchitecture of Тhe Java Platform
Martin Toshev
 
PDF
Javantura v4 - Security architecture of the Java platform - Martin Toshev
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPT
Websphere on z/OS and RACF security
Michael Erichsen
 
PPT
Security As A Service
guest536dd0e
 
PPTX
Modern Application and Microservices Security from EE6 JASPIC to the EE8 Secu...
Michael Remijan
 
PDF
Java EE Application Security With PicketLink
pigorcraveiro
 
PDF
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
elliando dias
 
PPT
Session 8 Tp8
phanleson
 
What is tackled in the Java EE Security API (Java EE 8)
Rudy De Busscher
 
Finally, EE Security API JSR 375
Alex Kosowski
 
Java ee 8 + security overview
Rudy De Busscher
 
JSR 375 - Have you seen Java EE Security API lately? - codemotion Tel Aviv 2015
Werner Keil
 
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
Markus Eisele
 
Introduction to PicketLink
JBUG London
 
Java2Days - Security for JavaEE and the Cloud
Werner Keil
 
Utilize the Full Power of GlassFish Server and Java EE Security
Masoud Kalali
 
Java EE 8 security and JSON binding API
Alex Theedom
 
Security Architecture of the Java Platform (http://www.javaday.bg event - 14....
Martin Toshev
 
Intro to Apache Shiro
Claire Hunsaker
 
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Martin Toshev
 
Security Аrchitecture of Тhe Java Platform
Martin Toshev
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Websphere on z/OS and RACF security
Michael Erichsen
 
Security As A Service
guest536dd0e
 
Modern Application and Microservices Security from EE6 JASPIC to the EE8 Secu...
Michael Remijan
 
Java EE Application Security With PicketLink
pigorcraveiro
 
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
elliando dias
 
Session 8 Tp8
phanleson
 
Ad

More from Rudy De Busscher (16)

PDF
jakarta-integration-testing.pdf
Rudy De Busscher
 
PDF
core-profile_jakartaOne2022.pdf
Rudy De Busscher
 
PDF
MicroStream-WithoutDatabase.pdf
Rudy De Busscher
 
PDF
Jakarta EE 8 on JDK17
Rudy De Busscher
 
PDF
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
Rudy De Busscher
 
PDF
Creating a Kubernetes Operator in Java
Rudy De Busscher
 
PDF
Finally, easy integration testing with Testcontainers
Rudy De Busscher
 
PDF
Control and monitor_microservices_with_microprofile
Rudy De Busscher
 
PDF
Transactions in micro-services (fall 2019)
Rudy De Busscher
 
PDF
Transactions in micro-services (summer 2019)
Rudy De Busscher
 
PDF
Monitor Micro-service with MicroProfile metrics
Rudy De Busscher
 
PDF
Gradual migration to MicroProfile
Rudy De Busscher
 
PDF
Secure JAX-RS
Rudy De Busscher
 
PDF
From Monolith to micro-services and back : The Self Contained Systems
Rudy De Busscher
 
PPTX
Extending Arquillian graphene
Rudy De Busscher
 
PPTX
Octopus framework; Permission based security framework for Java EE
Rudy De Busscher
 
jakarta-integration-testing.pdf
Rudy De Busscher
 
core-profile_jakartaOne2022.pdf
Rudy De Busscher
 
MicroStream-WithoutDatabase.pdf
Rudy De Busscher
 
Jakarta EE 8 on JDK17
Rudy De Busscher
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
Rudy De Busscher
 
Creating a Kubernetes Operator in Java
Rudy De Busscher
 
Finally, easy integration testing with Testcontainers
Rudy De Busscher
 
Control and monitor_microservices_with_microprofile
Rudy De Busscher
 
Transactions in micro-services (fall 2019)
Rudy De Busscher
 
Transactions in micro-services (summer 2019)
Rudy De Busscher
 
Monitor Micro-service with MicroProfile metrics
Rudy De Busscher
 
Gradual migration to MicroProfile
Rudy De Busscher
 
Secure JAX-RS
Rudy De Busscher
 
From Monolith to micro-services and back : The Self Contained Systems
Rudy De Busscher
 
Extending Arquillian graphene
Rudy De Busscher
 
Octopus framework; Permission based security framework for Java EE
Rudy De Busscher
 
Ad

Recently uploaded (20)

PDF
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
PPTX
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
PDF
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
PDF
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
DOCX
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
PPTX
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
PPTX
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
PDF
Python Conference Singapore - 19 Jun 2025
ninefyi
 
PDF
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
PDF
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PDF
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
PDF
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PDF
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
The Growing Value and Application of FME & GenAI
Safe Software
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 

Java EE Security API - JSR375: Getting Started

  • 2. Java EE 8 : Java EE Security API
  • 3. A G E N D A JAVA EE SECURITY WHY 
 UPDATE? ALREADY
 AVAILABLE? JSR-375
 SOTERIA CONCEPTS DEMO
  • 4. • C4J • Senior Java Web Developer, Java Coach • JSR-375 • Java EE Security API Expert group member • Java EE Believer @rdebusscher http://jsfcorner.blogspot.be http://javaeesquad.blogspot.be W H O A M I RUDY DE BUSSCHER
  • 5. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context W H Y U P D A T E ?
  • 6. W H Y A N E W J S R ? • Java EE Security is viewed as not portable, abstract/confusing, antiquated • Doesn't fit cloud app developer paradigm: requires app server configuration
  • 7. T E R M I N O L O G Y ? • What is that "something" where identities are stored? • realm (Tomcat, some hints in Servlet spec) • (auth) repository • (auth) store • login module (JAAS) • identity manager (Undertow) • authenticator (Resin, OmniSecurity, Seam security) • authentication provider (Spring Security) • Identity provider
  • 8. J A V A E E S E C U R I T Y • Each JSR has his 'own' way • They look at each other, but ... • No JSR exists to address security overall • Security on the platform level
  • 9. So what is standardised?
  • 10. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context W H Y U P D A T E ?
  • 11. J A S P I C Java Authentication Service Provider Interface for Containers • Java EE 6 • For custom logic • BASIC/FORM/DIGEST • Low Level (per request) • Verbose
  • 13. Java Authorization Service Provider Contract for Containers J A C C • J2EE 1.4 ERA • C.O.M.P.L.E.X.I.T.Y • Application Server Wide • No Role Mapping specified
  • 14. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context G O A L S
  • 15. J S R - 3 7 5 • EG discussions started March 2015 • EG Members • EE API veterans: many JSRs, many years struggling with Security API • 3rd party security framework creators/developers • EE platform security implementers • 10/2016 : EG Updated, switch Spec Lead • March 13, 2017 : Early Draft Review • May 25, 2017 : Public review
  • 16. G O A L S • Plug the portability holes • Modernize • Context Dependency Injection (CDI) • Intercept at Access Enforcement Points: POJO methods • Expression Language (EL) • Enable Access Enforcement Points with complex rules • App Developer Friendly • Common security configurations not requiring server changes • Annotation defaults not requiring XML
  • 17. I D E A S • Terminology • API for Authentication Mechanism • API for Identity Store • API for Security Context • API for Password Aliasing • API for Role/Permission Assignment • API for Authorization Interceptors • + ... JAVA EE 8 JAVA EE 9
  • 18. S O T E R I A • In Greek mythology, Soteria was the goddess of safety and salvation. • RI of JSR-375 • Should work on Java EE 7 • WildFly 10+ • Payara 4.1.1.161+ • TomEE 7.0.2+ • WebSphere Liberty 2016.9+
  • 19. JASPIC JACC SOTERIA U S I N G Existing blocks for authentication and authorization
  • 20. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context C O N C E P T S
  • 21. H T T P A U T H E N T I C A T I O N M E C H A N I S M • How are credentials retrieved • BASIC • FORM • classic j_security_check, ... • CustomForm • programmatic • Custom • For JAX-RS endpoints, ...
  • 23. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context C O N C E P T S
  • 24. I D E N T I T Y S T O R E • Verify credentials • LDAP • DATABASE • with configurable queries • EMBEDDED (Soteria Only not in API) • Easy for testing with hardcoded values • Custom • Whatever your need is
  • 25. @LdapIdentityStoreDefinition(
 url = "ldap://localhost:33389/",
 baseDn = "uid=ldap,ou=apps,dc=jsr375,dc=net",
 password = "changeOnInstall",
 searchBase = "dc=jsr375,dc=net",
 searchExpression = "(&(uid=%s)(objectClass=person))",
 groupBaseDn = "ou=group,dc=jsr375,dc=net"
 )
  • 28. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context C O N C E P T S
  • 29. T R I P L E A • Authentication • Verifying that a user is who she says she is. • Authorisation • He can execute the allowed actions within their privilege. • Accounting • Audit
  • 30. M U L T I S T O R E • Authentication / Authorisation • From multiple sources! • Examples • Scenario 1 • Authentication : LDAP • Authorisation : Database
  • 31. M U L T I S T O R E ( 2 ) • Scenario 2 • Authentication : OAuth2 • Authentication : Limited to certain email Domain • Authorization : ... • Scenario 3 • Authentication : ... • Authorisation : Database • Authorisation (In Test) : Extra roles/permissions
  • 32. I D E N T I T Y S T O R E H A N D L E R • IdentityStoreHandler • Handles multiple defined Identity Stores • ValidationType on IdentityStore • VALIDATE • PROVIDE_GROUPS
  • 33. @LdapIdentityStoreDefinition(
 url = "ldap://localhost:33389/",
 baseDn = "uid=ldap,ou=apps,dc=jsr375,dc=net",
 password = "changeOnInstall",
 searchBase = "dc=jsr375,dc=net",
 searchExpression = "(&(uid=%s)(objectClass=person))",
 groupBaseDn = "ou=group,dc=jsr375,dc=net", useFor = ValidationType.VALIDATE
 )
  • 35. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context C O N C E P T S
  • 36. E X T E N S I B I L I T Y interface HttpAuthenticationMechanism interface IdentityStore interface IdentityStoreHandler
  • 37. • Why Update? • What is available? • JSR-375 • Concepts • Authentication Mechanism • IdentityStore • Authentication - Authorization • Custom integration • Security Context C O N C E P T S
  • 38. S E C U R I T Y C O N T E X T Security
 Context Authentication
 Mechanism Identity
 Store Principal
 Info for
 Request Authorization
 Interceptors U S E S D A T A
  • 39. Users List Subscribe and contribute [email protected] Github Soteria repository Fork and play! https://github.com/javaee-security-spec/soteria G E T I N V O L V E D
  • 40. Q & A