Book description
Enterprise Java™ Security: Building Secure J2EE™ Applications provides application developers and programmers with the know-how they need to utilize the latest Java security technologies in building secure enterprise infrastructures. Written by the leading Java security experts at IBM, this comprehensive guide covers the current status of the Java™ 2 Platform, Enterprise Edition (J2EE), and Java™ 2 Platform, Standard Edition (J2SE™), security architectures and offers practical solutions and usage patterns to address the challenges of Java security.
To aid developers who need to build secure J2EE applications, Enterprise Java™ Security covers at length the J2EE security technologies, including the security aspects of servlets, JavaServer Pages(TM) (JSP™), and Enterprise JavaBeans™ (EJB™)—technologies that are at the core of the J2EE architecture. In addition, the book covers Web Services security.
Examples and sample code are provided throughout the book to give readers a solid understanding of the underlying technology.
The relationship between Java and cryptographic technologies is covered in great detail, including:
Java Cryptography Architecture (JCA)
Java Cryptography Extension (JCE)
Public-Key Cryptography Standards (PKCS)
Secure/Multipurpose Internet Mail Extensions (S/MIME)
Java Secure Socket Extension (JSSE)
Table of contents
- Copyright
- Foreword
- Preface
- About the Authors
-
I. Enterprise Security and Java
-
1. An Overview of Java Technology and Security
- 1.1. Why Java Technology for Enterprise Applications?
- 1.2. Enterprise Java Technology
- 1.3. Java Technology as Part of Security
- 1.4. An Overview of Enterprise Security Integration
- 1.5. Time to Market
- 2. Enterprise Network Security and Java Technology
-
1. An Overview of Java Technology and Security
-
II. Enterprise Java Components Security
-
3. Enterprise Java Security Fundamentals
- 3.1. Enterprise Systems
- 3.2. J2EE Applications
- 3.3. Secure Interoperability between ORBs
- 3.4. Connectors
- 3.5. JMS
- 3.6. Simple E-Business Request Flow
-
3.7. J2EE Platform Roles
- 3.7.1. Application Component Provider
- 3.7.2. Application Assembler
- 3.7.3. Deployer
- 3.7.4. System Administrator
-
3.7.5. J2EE Product Provider
- 3.7.5.1. Supplying Deployment Tools
- 3.7.5.2. Configuring Security Domains
- 3.7.5.3. Supplying Mechanisms to Enforce Security Policies
- 3.7.5.4. Providing Tools for Principal Delegation
- 3.7.5.5. Providing Access to the Caller's Security Context
- 3.7.5.6. Supplying Runtime Security Enforcement
- 3.7.5.7. Providing a Security Audit Trail
- 3.8. J2EE Security Roles
- 3.9. Declarative Security Policies
- 3.10. Programmatic Security
- 3.11. Secure Communication within a WAS Environment
- 3.12. Secure E-Business Request Flow
-
4. Servlet and JSP Security
- 4.1. Introduction
- 4.2. Advantages of Servlets
- 4.3. Servlet Life Cycle
- 4.4. The Deployment Descriptor of a Web Module
- 4.5. Authentication
- 4.6. Authorization
- 4.7. Principal Delegation
- 4.8. Programmatic Security
- 4.9. Runtime Restrictions for Web Components
- 4.10. Usage Patterns
- 4.11. Partitioning Web Applications
- 5. EJB Security
- 6. Enterprise Java Security Deployment Scenarios
-
3. Enterprise Java Security Fundamentals
-
III. The Foundations of Java 2 Security
-
7. J2SE Security Fundamentals
- 7.1. Access to Classes, Interfaces, Fields, and Methods
- 7.2. Class Loaders
- 7.3. The Class File Verifier
- 7.4. The Security Manager
- 7.5. Interdependence of the Three Java Security Legs
- 7.6. Summary
-
8. The Java 2 Permission Model
- 8.1. Overview of the Java 2 Access-Control Model
- 8.2. Java Permissions
- 8.3. Java Security Policy
- 8.4. The Concept of CodeSource
- 8.5. ProtectionDomains
- 8.6. The Basic Java 2 Access-Control Model
- 8.7. Privileged Java 2 Code
- 8.8. ProtectionDomain Inheritance
- 8.9. Performance Issues in the Java 2 Access-Control Model
- 8.10. Summary
- 9. Authentication and Authorization with JAAS
-
7. J2SE Security Fundamentals
-
IV. Enterprise Java and Cryptography
-
10. The Theory of Cryptography
- 10.1. The Purpose of Cryptography
- 10.2. Secret-Key Cryptography
- 10.3. Public-Key Cryptography
-
11. The Java 2 Platform and Cryptography
- 11.1. The JCA and JCE Frameworks
-
11.2. The JCA API
- 11.2.1. The java.security.SecureRandom Class
- 11.2.2. The java.security.Key Interface
- 11.2.3. The PublicKey and PrivateKey Interfaces in Package java.security
- 11.2.4. The java.security.KeyFactory Class
- 11.2.5. The java.security.KeyPair Class
- 11.2.6. The java.security.KeyPairGenerator Class
- 11.2.7. The java.security.KeyStore Class
- 11.2.8. The java.security.MessageDigest Class
- 11.2.9. The java.security.Signature Class
- 11.2.10. The AlgorithmParameters and AlgorithmParameterGenerator Classes in Package java.security
- 11.2.11. The java.security.SignedObject Class
- 11.2.12. The java.security.spec Package
- 11.2.13. The java.security.cert Package
- 11.2.14. The java.security.interfaces Package
-
11.3. The JCE API
- 11.3.1. The javax.crypto.Cipher Class
- 11.3.2. The CipherInputStream and CipherOutputStream Classes in the javax.crypto Package
- 11.3.3. The javax.crypto.SecretKey Interface
- 11.3.4. The javax.crypto.spec.SecretKeySpec Class
- 11.3.5. The javax.crypto.KeyGenerator Class
- 11.3.6. The javax.crypto.SecretKeyFactory Class
- 11.3.7. The javax.crypto.SealedObject Class
- 11.3.8. The javax.crypto.KeyAgreement Class
- 11.3.9. The javax.crypto.Mac Class
- 11.4. JCE in Practice
- 11.5. Security Considerations
-
12. PKCS and S/MIME in J2EE
-
12.1. PKCS Overview
- 12.1.1. PKCS#1: RSA Cryptography Standard
- 12.1.2. PKCS#5: Password-Based Cryptography Standard
- 12.1.3. PKCS#7: Cryptographic Message Syntax Standard
- 12.1.4. PKCS#8: Private-Key Information Syntax Standard
- 12.1.5. PKCS#9: Selected Attribute Types
- 12.1.6. PKCS#10: Certification Request Syntax Standard
- 12.1.7. PKCS#12: Personal Information Exchange Syntax Standard
- 12.2. S/MIME Overview
- 12.3. Signing and Verifying Transactions with PKCS and S/MIME
- 12.4. Encrypting Transactions with PKCS and S/MIME
- 12.5. Security Considerations
- 12.6. Future Directions
-
12.1. PKCS Overview
-
13. The SSL and TLS Protocols in a J2EE Environment
- 13.1. The SSL and TLS Protocols
- 13.2. HTTPS
-
13.3. Using the SSL Support Built into J2EE Products
- 13.3.1. SSL to Protect User ID and Password during Authentication
- 13.3.2. SSL in Certificate-Based Authentication
- 13.3.3. Reverse Proxy Server and WAS Mutual Authentication
- 13.3.4. SSL in Cookie-Based Single Sign-On
- 13.3.5. Single Sign-On with Certificate-Based Authentication
- 13.3.6. SSL to Protect the Communication Channel
- 13.4. Using SSL from within J2EE Programs
- 13.5. Examples
- 13.6. Summary
-
10. The Theory of Cryptography
-
V. Advanced Topics
- 14. Enterprise Security for Web Services
- 15. Security Considerations for Container Providers
- 16. Epilogue
- VI. Appendixes
Product information
- Title: Enterprise Java™ Security: Building Secure J2EE™ Applications
- Author(s):
- Release date: February 2004
- Publisher(s): Addison-Wesley Professional
- ISBN: None
You might also like
book
Java Coding Problems
Develop your coding skills by exploring Java concepts and techniques such as Strings, Objects and Types, …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Modern API Development with Spring and Spring Boot
A developer's guide to designing, testing, and securing production-ready modern APIs with the help of practical …
book
Mastering Microservices with Java - Third Edition
Master the art of implementing scalable and reactive microservices in your production environment with Java 11 …