Enterprise Java Security Directions
Contents
- Enterprise Java Security Directions
- Trademarks
- Talk Outline
- Enterprise Java Beans
- Multi-Tier Model
- J2EE and EJB
- What is it?
- Services Provided By An EJB Container
- Simplified Definition**
- EJB Components
- Remote Method Invocation
- What is a Transaction Monitor?
- EJB Roles
- Development / Deployment Process
- Enterprise Bean Provider
- Example Automobile Bean
- Classes and Interfaces: Home interface
- Classes and Interfaces: Remote Interface
- Classes and Interfaces: Bean class
- FYI - EJB Flavors
- Classes and Interfaces: Primary key
- Example: Remote Interface Automobile Bean
- Example: Home Interface Automobile Bean
- Example: EJB Automobile Bean
- Example: EJB (continued) Automobile Bean
- EJB Security
- EJB Security
- Objectives
- 4 Perspectives of EJB Security
- Policy Based Authorization: Bean Provider
- Policy Based Authorization: Application Assembler
- Application Assembler*
- Application Assembler*
- Application Assembler: Security Roles
- Application Assembler: Defining Role Names
- Application Assembler: Method Permissions
- Application Assembler: Method Permissions
- Application Assembler: Method Permissions
- Policy Based Authorization: Deployer
- Policy Based Authorization: Deployer
- Policy Based Authorization: Deployer
- Policy Based Authorization: EJB Container Provider
- Policy Based Authorization: System Administrator
- 4 Perspectives of EJB Security
- Application Security APIs: Bean Provider
- Application Security APIs: Bean Provider
- Deployment Descriptor: Security-Role-Ref
- isCallerInRole example
- Deployment Descriptor: Security-Role-Ref
- Application Security APIs: Application Assembler
- Deployment Descriptor: Defining Role Names
- Deployment Descriptor: Method Permissions
- Deployment Descriptor: Role-Ref / Role Linking
- 4 Perspecties of EJB Security
- Delegation: Bean Provider
- Delegation: Deployer
- Delegation: EJB Container Provider
- EJB Client
- 4 Perspectives of EJB Security
- Architecture / Implementation
- Bean Provider: Programming Restrictions
- Bean Provider: Programming Restrictions - Java 2
- Deployer
- EJB Container Provider
- EJB Container Provider
- System Administrator
- Java Authentication and Authorization Services (JAAS)
- What is JAAS?
- Key elements:
- Java 2 Standard Edition Security: Review
- CodeSource
- Policy
- Sample Java 2 Policy
- ProtectionDomain
- Classes, ProtectionDomains & Permissions
- Example Guard on Protected Resource
- The GetProperty Example
- Threads of Execution in Java
- Check of Current Thread
- Determining the Permission Set of a Thread
- Authorization - Permissions
- Authorization - Permissions
- Authorization - Permissions
- Lexical Scoping of Privilege Modification
- Why Privileged Code?
- The Privileged Code Mechanism
- Example Privileged Code
- Example - Anonymous Inner Class
- AccessController Algorithm - Stage 1 Build AccessControlContext
- AccessController Algorithm - Stage 2
- JAAS / J2SE Authorization Relationship
- Sample JAAS Policy
- Sample JAAS Policy - Roles
- Example doAs()
- Subject.doAs() Effect
- Example scenario
- Augmented with doAs()
- Another doAs() scenario
- Another doAs() scenario (con't)
- Summary
- Example: EJB Authorization Using JAAS
- EJBRole
- EJBMethodPermission
- EJBPrivilegedAction
- EJBPrivilegedAction
- Build an EJB Subject
- EJB Method Authorization and Invocation
- Server Managed Security Policy
- Security Policy - Reference
- Security Policy - Configuration
- Security Policy - Policy class
- Security Policy - Keystore
- Summary
- Resources