Skip to content
This repository was archived by the owner on Aug 23, 2023. It is now read-only.

Commit db51cc8

Browse files
committed
Update spec for Public Review Draft
1 parent 730935b commit db51cc8

12 files changed

+256
-287
lines changed

LICENSE-template.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
//
1010
// Specification: JSR-375 Java EE Security API ("Specification")
1111
// Version: 1.0
12-
// Status: Early Draft Review
13-
// Release: March 2017
12+
// Status: Public Review
13+
// Release: May 2017
1414
//
1515
// Copyright 2017 Oracle America, Inc.
1616
// 500 Oracle Parkway, Redwood City, California 94065, U.S.A.

LICENSE.html

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html xmlns="http://www.w3.org/1999/xhtml">
33
<head>
44
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5-
<title>Untitled Document</title>
5+
<title>JSR-375 Public Review License</title>
66
</head>
77
<body>
88
<p>
@@ -17,9 +17,9 @@
1717
<br>
1818
Version: 1.0
1919
<br>
20-
Status: Early Draft Review
20+
Status: Public Review
2121
<br>
22-
Release: March 2017
22+
Release: May 2017
2323
<p>
2424
Copyright 2017 Oracle America, Inc.
2525
<br>
@@ -58,6 +58,7 @@
5858
initiating its download, where the list or link is under Licensee's control; and
5959
<br>
6060
(iii) includes the following notice:
61+
<br>
6162
"This is an implementation of an early-draft specification developed under the Java Community Process
6263
(JCP) and is made available for testing and evaluation purposes only. The code is not compatible with
6364
any specification of the JCP."

LICENSE.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ THIS PAGE AND THE DOWNLOADING PROCESS WILL NOT CONTINUE.
77

88
Specification: JSR-375 Java EE Security API ("Specification")
99
Version: 1.0
10-
Status: Early Draft Review
11-
Release: March 2017
10+
Status: Public Review
11+
Release: May 2017
1212

1313
Copyright 2017 Oracle America, Inc.
1414
500 Oracle Parkway, Redwood City, California 94065, U.S.A.

README.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ The AsciiDoc specification source is located in this directory:
2121

2222
== Making Changes
2323

24-
Master is now at GitHub, mirrored back to java.net.
24+
To propose changes, please submit a pull request.

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>javax.security</groupId>
66
<artifactId>javax.security-spec</artifactId>
7-
<version>1.0-edr</version>
7+
<version>1.0-prd</version>
88
<packaging>pom</packaging>
99

1010
<name>EE Security API Specification</name>

src/main/doc/authenticationMechanism.asciidoc

+67-60
Large diffs are not rendered by default.

src/main/doc/concepts.asciidoc

+44-9
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
//
1010
// Specification: JSR-375 Java EE Security API ("Specification")
1111
// Version: 1.0
12-
// Status: Early Draft Review
13-
// Release: March 2017
12+
// Status: Public Review
13+
// Release: May 2017
1414
//
1515
// Copyright 2017 Oracle America, Inc.
1616
// 500 Oracle Parkway, Redwood City, California 94065, U.S.A.
@@ -141,11 +141,46 @@
141141

142142
[[concepts]]
143143

144-
== Concepts
144+
== Concepts and General Requirements
145145

146-
* authentication
147-
* authorization
148-
* credential
149-
* jaspic
150-
* java servlet specification
151-
* token
146+
This chapter overview information and terminology related to this specification, and also includes a general requirements not specified elsewhere in this document.
147+
148+
=== Terminology And Acronyms
149+
150+
A common understanding of security-related terms is helpful for discussion or specification of security APIs. To that end, we incorporate by reference the excellent https://shiro.apache.org/terminology.html[Apache Shiro Terminology], and define some additional terms used in this document.
151+
152+
Authentication Mechanism ::
153+
The mechanism by which authentication is performed. This mechanism interacts with the caller to obtain credentials and invokes an identity store to match the given credentials with a known user (identity). If a match is found, the Authentication Mechanism uses the found identity to populate attributes (principals) to build an authenticated Subject. If a match is not found, the Authentication Mechanism reports a failed authentication, the caller is not logged in, and is unable to be given authorization.
154+
155+
Caller, Caller Principal::
156+
A caller is a user that is making a request to an application, or invoking an application API. A Caller Principal is a Principal object representing that user. This specification uses the term caller in preference to the term user in most contexts.
157+
158+
HAM::
159+
Abbreviation for _HttpAuthenticationMechanism_, an interface defined by this specification.
160+
161+
Identity Store::
162+
An Identity Store is a component that can access application-specific security data such as users, roles, and permissions. It can be thought of as a security-specific DAO (Data Access Object). Synonyms: security provider, repository, store, login module (JAAS), identity manager, service provider, relying party, authenticator, user service. Identity Stores usually have a 1-to-1 correlation with a data source such as a relational database, LDAP directory, file system, or other similar resource. As such, implementations of the _IdentityStore_ interface use data source-specific APIs to discover authorization data (roles, permissions, etc), such as JDBC, File IO, Hibernate or JPA, or any other Data Access API.
163+
164+
JASPIC::
165+
Java Authentication SPI for Containers.
166+
167+
SAM::
168+
Abbreviation for _ServerAuthModule_, an interface defined by JASPIC.
169+
170+
=== General Requirements
171+
172+
The following general requirments are defined by this specification.
173+
174+
==== Group-To-Role Mapping
175+
176+
Various Java EE specifications define how roles are declared for an application, and how access to application resources can be restricted to users that have a specific role. The specifications are largely silent on the question of how users are assigned to roles, however. Most application servers have proprietary mechanisms for determining the roles a user has.
177+
178+
Application servers MUST provide a default mapping from group names to roles. That is, a caller who is a member of group "foo" is considered to have role "foo". This default mapping MAY be overridden by proprietary configuration, but, when not overridden, provides sensible and predictable behavior for portable applications.
179+
180+
An application MAY provide a default mapping from caller principal names to roles. That is, a caller with the name "bar" is considered to have role "bar". This default mapping MAY be overridden by proprietary configuration.
181+
182+
==== Caller Principal Types
183+
184+
This specification defines a principal type called _CallerPrincipal_ to represent the identity of an application caller. Historically, application servers have used different principal types to represent an application's callers, and various Java EE specifications (e.g., JASPIC), provide abstractions to accomodate, "the container's representation of the caller principal".
185+
186+
This specification RECOMMENDS that Java EE application servers that rely on container-specific caller principal types derive those types by extending _CallerPrincipal_, so that portable applications can rely on a consistent representation of the caller principal.

0 commit comments

Comments
 (0)