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

More Related Content

What's hot (20)

DOC
Phan tich thiet ke he thong thong tin
Nguyễn Duy Hưng
 
DOC
Tailieu.vncty.com bao cao thiet ke web ban hang qua mang
Trần Đức Anh
 
PDF
Luận văn: Bắt đầu lại thời hiệu khởi kiện trong luật dân sự, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
PDF
Các mô hình dữ liệu
Quách Đại Dương
 
PDF
Bài tập kế toán có đa
Học Huỳnh Bá
 
PDF
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
DOCX
Đề tài: Website giới thiệu sản phẩm cho shop thời trang Daisy
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
PPTX
Báo cáo thực tập cơ sở
Nguyễn Phú
 
PPTX
Slide Bao Cao Thuc Tap
thanhhauuit
 
DOCX
Mau viet tai lieu srs
trinhtv_55
 
PPT
Alfresco hệ quản lý nội dung doanh nghiệp nguồn mở
Học Huỳnh Bá
 
PDF
Bài giảng nhập môn công nghệ học phần mềm
Thanh Danh
 
DOC
Chuong6 hoạt động ngắt
Đinh Công Thiện Taydo University
 
PDF
BÀI 5 Tổ chức hình vẽ với Layer & Làm việc với Symbol - Giáo trình FPT
MasterCode.vn
 
PDF
3. phan quyen trong sql server 01012010
Truong van Duoc
 
PDF
Đề tài: Hệ thống giúp tư vấn nghề nghiệp cho học sinh THPT, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
PDF
Luận văn: Bài toán nhận dạng biển số xe, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
PDF
Giáo trình hệ quản trị cơ sở dữ liệu, Nguyễn Thái Nghe, 2014.pdf
Man_Ebook
 
PDF
Nghiên cứu phương pháp làm việc nhóm hiệu quả của sinh viên trường Đại học Cầ...
Man_Ebook
 
PDF
BA DAY: 5 bước phân tích yêu cầu nghiệp vụ
Le Cuong
 
Phan tich thiet ke he thong thong tin
Nguyễn Duy Hưng
 
Tailieu.vncty.com bao cao thiet ke web ban hang qua mang
Trần Đức Anh
 
Luận văn: Bắt đầu lại thời hiệu khởi kiện trong luật dân sự, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Các mô hình dữ liệu
Quách Đại Dương
 
Bài tập kế toán có đa
Học Huỳnh Bá
 
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
Đề tài: Website giới thiệu sản phẩm cho shop thời trang Daisy
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Báo cáo thực tập cơ sở
Nguyễn Phú
 
Slide Bao Cao Thuc Tap
thanhhauuit
 
Mau viet tai lieu srs
trinhtv_55
 
Alfresco hệ quản lý nội dung doanh nghiệp nguồn mở
Học Huỳnh Bá
 
Bài giảng nhập môn công nghệ học phần mềm
Thanh Danh
 
Chuong6 hoạt động ngắt
Đinh Công Thiện Taydo University
 
BÀI 5 Tổ chức hình vẽ với Layer & Làm việc với Symbol - Giáo trình FPT
MasterCode.vn
 
3. phan quyen trong sql server 01012010
Truong van Duoc
 
Đề tài: Hệ thống giúp tư vấn nghề nghiệp cho học sinh THPT, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Luận văn: Bài toán nhận dạng biển số xe, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Giáo trình hệ quản trị cơ sở dữ liệu, Nguyễn Thái Nghe, 2014.pdf
Man_Ebook
 
Nghiên cứu phương pháp làm việc nhóm hiệu quả của sinh viên trường Đại học Cầ...
Man_Ebook
 
BA DAY: 5 bước phân tích yêu cầu nghiệp vụ
Le Cuong
 

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)

PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 

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