2. Using the Tutorial Examples 3. Getting Started with Web Applications 5. JavaServer Pages Technology 7. JavaServer Pages Standard Tag Library 10. JavaServer Faces Technology 11. Using JavaServer Faces Technology in JSP Pages 12. Developing with JavaServer Faces Technology 13. Creating Custom UI Components 14. Configuring JavaServer Faces Applications 15. Internationalizing and Localizing Web Applications 16. Building Web Services with JAX-WS 17. Binding between XML Schema and Java Classes 19. SOAP with Attachments API for Java 21. Getting Started with Enterprise Beans 23. A Message-Driven Bean Example 24. Introduction to the Java Persistence API 25. Persistence in the Web Tier 26. Persistence in the EJB Tier 27. The Java Persistence Query Language 28. Introduction to Security in the Java EE Platform Step 2: Initial Authentication Step 4: Fulfilling the Original Request Security Implementation Mechanisms Java SE Security Implementation Mechanisms Java EE Security Implementation Mechanisms Using Deployment Descriptors for Declarative Security Securing the Application Server Working with Realms, Users, Groups, and Roles What Are Realms, Users, Groups, and Roles? Managing Users and Groups on the Application Server Adding Users to the Application Server Adding Users to the Certificate Realm Mapping Roles to Users and Groups Establishing a Secure Connection Using SSL Installing and Configuring SSL Support Specifying a Secure Connection in Your Application Deployment Descriptor Working with Digital Certificates Using a Different Server Certificate with the Application Server Miscellaneous Commands for Certificates Enabling Mutual Authentication over SSL Creating a Client Certificate for Mutual Authentication Further Information about Security 29. Securing Java EE Applications 31. The Java Message Service API 32. Java EE Examples Using the JMS API 36. The Coffee Break Application | Overview of Java EE SecurityJava EE, web, and web services applications are made up of components thatcan be deployed into different containers. These components are used to build amultitier enterprise application. Security for components is provided by their containers. A containerprovides two kinds of security: declarative and programmatic security.
A Simple Security ExampleThe security behavior of a Java EE environment may be better understood byexamining what happens in a simple application with a web client, aJSP user interface, and enterprise bean business logic. In the following example, which is taken from JSR-244, theJava EE 5 Specification, theweb client relies on the web server to act as its authentication proxyby collecting user authentication data from the client and using it to establishan authenticated session. Step 1: Initial RequestIn the first step of this example, the web client requests themain application URL. This action is shown inFigure 28-1. Figure 28-1 Initial Request ![]() Since the client has not yet authenticated itself to the application environment, theserver responsible for delivering the web portion of the application (hereafter referred toasweb server) detects this and invokes the appropriate authentication mechanism for this resource. Formore information on these mechanisms, readSecurity Implementation Mechanisms. Step 2: Initial AuthenticationThe web server returns a form that the web client uses tocollect authentication data (for example, user name and password) from the user. Theweb client forwards the authentication data to the web server, where it isvalidated by the web server, as shown inFigure 28-2. Figure 28-2 Initial Authentication ![]() The validation mechanism may be local to a server, or it mayleverage the underlying security services. On the basis of the validation, the web serversets a credential for the user. Step 3: URL AuthorizationThe credential is used for future determinations of whether the user is authorizedto access restricted resources it may request. The web server consults the securitypolicy (derived from the deployment descriptor) associated with the web resource to determinethe security roles that are permitted access to the resource. The web containerthen tests the user’s credential against each role to determine if it canmap the user to the role.Figure 28-3 shows this process. Figure 28-3 URL Authorization ![]() The web server’s evaluation stops with an “is authorized” outcome when the webserver is able to map the user to a role. A “not authorized”outcome is reached if the web server is unable to map the userto any of the permitted roles. Step 4: Fulfilling the Original RequestIf the user is authorized, the web server returns the result ofthe original URL request, as shown inFigure 28-4. Figure 28-4 Fulfilling the Original Request ![]() In our example, the response URL of a JSP page is returned,enabling the user to post form data that needs to be handled bythe business logic component of the application. ReadChapter 30, Securing Web Applications for more information onprotecting web applications. Step 5: Invoking Enterprise Bean Business MethodsThe JSP page performs the remote method call to the enterprise bean, usingthe user’s credential to establish a secure association between the JSP page andthe enterprise bean (as shown inFigure 28-5). The association is implemented astwo related security contexts, one in the web server and one in theEJB container. Figure 28-5 Invoking an Enterprise Bean Business Method ![]() The EJB container is responsible for enforcing access control on the enterprise beanmethod. It consults the security policy (derived from the deployment descriptor) associated withthe enterprise bean to determine the security roles that are permitted access tothe method. For each role, the EJB container uses the security context associatedwith the call to determine if it can map the caller to therole. The container’s evaluation stops with an “is authorized” outcome when the container isable to map the caller’s credential to a role. A “not authorized” outcomeis reached if the container is unable to map the caller to anyof the permitted roles. A “not authorized” result causes an exception to bethrown by the container, and propagated back to the calling JSP page. If the call is authorized, the container dispatches control to the enterprise beanmethod. The result of the bean’s execution of the call is returned tothe JSP, and ultimately to the user by the web server andthe web client. ReadChapter 29, Securing Java EE Applications for more information on protecting web applications. Security FunctionsA properly implemented security mechanism will provide the following functionality:
Ideally, properly implemented security mechanisms will also provide the following functionality:
Characteristics of Application SecurityJava EE applications consist of components that can contain both protected and unprotectedresources. Often, you need to protect resources to ensure that only authorized usershave access.Authorization provides controlled access to protected resources. Authorization is based onidentification and authentication.Identification is a process that enables recognition of an entity bya system, andauthentication is a process that verifies the identity of auser, device, or other entity in a computer system, usually as a prerequisiteto allowing access to resources in a system. Authorization and authentication are not required for an entity to access unprotected resources.Accessing a resource without authentication is referred to as unauthenticated or anonymous access. These and several other well-defined characteristics of application security that, when properly addressed,help to minimize the security threats faced by an enterprise, include the following:
Copyright © 2010, Oracle and/or its affiliates. All rights reserved.Legal Notices |