org.apache.beehive.netui.pageflow.internal
Class DefaultServerAdapter

Object
  extended by DefaultServerAdapter
All Implemented Interfaces:
ServerAdapter

public class DefaultServerAdapter
extends Object
implements ServerAdapter


Constructor Summary
DefaultServerAdapter()
           
 
Method Summary
 void beginRequest(HttpServletRequest request, HttpServletResponse response)
          Called at the beginning of each processed request.
 boolean checkSecurity(String uri, HttpServletRequest request, HttpServletResponse response)
          Cause the server to do a security check for the given URI.
 ControlBeanContext createControlBeanContext(HttpServletRequest request, HttpServletResponse response)
          Get a context object to support Java Controls.
 void endRequest(HttpServletRequest request, HttpServletResponse response)
          Called at the end of each processed request.
 void ensureFailover(String attrName, Object attrVal, HttpServletRequest request)
          Ensure that the given session attribute is replicated in a cluster for session failover.
 String getFullContextPath(HttpServletRequest request)
          Return the webapp context path for the given request.
 int getListenPort(HttpServletRequest request)
          Get the port on which the server is listening for unsecure connections.
 File[] getReloadableClassDirs()
          Get the build directory (or directories) where reloadable classes reside.
 int getSecureListenPort(HttpServletRequest request)
          Get the port on which the server is listening for secure connections.
protected  ServletContext getServletContext()
           
 void initServletContext(ServletContext servletContext)
          Called upon the initialization of the given ServletContext.
 boolean isInProductionMode()
          Tell whether the server is running in production mode.
 Boolean isSecureResource(String uri, HttpServletRequest request)
          Tell whether a web application resource requires a secure transport protocol.
 void login(String username, String password, HttpServletRequest request, HttpServletResponse response)
          Log in the user, using "weak" username/password authentication.
 void logout(boolean invalidateSessions, HttpServletRequest request, HttpServletResponse response)
          Log out the current user.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultServerAdapter

public DefaultServerAdapter()
Method Detail

isInProductionMode

public boolean isInProductionMode()
Description copied from interface: ServerAdapter
Tell whether the server is running in production mode. This is server-dependent, but by default it should return false only if the System property pageflow:devmode is set.

Specified by:
isInProductionMode in interface ServerAdapter
Returns:
true if the server is running in production mode.

isSecureResource

public Boolean isSecureResource(String uri,
                                HttpServletRequest request)
Description copied from interface: ServerAdapter
Tell whether a web application resource requires a secure transport protocol. This is determined from web.xml; for example, the following block specifies that all resources under /login require a secure transport protocol.
    <security-constraint>
        <web-resource-collection>
          <web-resource-name>Secure PageFlow - begin</web-resource-name> 
          <url-pattern>/login/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
           <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
 

Specified by:
isSecureResource in interface ServerAdapter
Parameters:
uri - a webapp-relative URI for a resource.
request - the current HttpServletRequest.
Returns:
Boolean.TRUE if a transport-guarantee of CONFIDENTIAL or INTEGRAL is associated with the given resource; Boolean.FALSE a transport-guarantee of NONE is associated with the given resource; or null if there is no transport-guarantee associated with the given resource.

checkSecurity

public boolean checkSecurity(String uri,
                             HttpServletRequest request,
                             HttpServletResponse response)
Description copied from interface: ServerAdapter
Cause the server to do a security check for the given URI. If required, it does a redirect to change the scheme (http/https).

Specified by:
checkSecurity in interface ServerAdapter
Parameters:
uri - the URI on which to run security checks.
request - the current HttpServletRequest.
response - the current HttpServletResponse.
Returns:
true if a redirect occurred.

getListenPort

public int getListenPort(HttpServletRequest request)
Description copied from interface: ServerAdapter
Get the port on which the server is listening for unsecure connections.

Specified by:
getListenPort in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.
Returns:
the port on which the server is listening for unsecure connections.

getSecureListenPort

public int getSecureListenPort(HttpServletRequest request)
Description copied from interface: ServerAdapter
Get the port on which the server is listening for secure connections.

Specified by:
getSecureListenPort in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.
Returns:
the port on which the server is listening for secure connections.

login

public void login(String username,
                  String password,
                  HttpServletRequest request,
                  HttpServletResponse response)
           throws LoginException
Description copied from interface: ServerAdapter
Log in the user, using "weak" username/password authentication.

Specified by:
login in interface ServerAdapter
Parameters:
username - the user's login name.
password - the user's password.
request - the current HttpServletRequest.
response - the current HttpServletResponse.
Throws:
LoginException - if the authentication failed

logout

public void logout(boolean invalidateSessions,
                   HttpServletRequest request,
                   HttpServletResponse response)
Description copied from interface: ServerAdapter
Log out the current user.

Specified by:
logout in interface ServerAdapter
Parameters:
invalidateSessions - if true, the session is invalidated (on all single-signon webapps); otherwise the session and its data are left intact. To invalidate the session in only the current webapp, set this parameter to false and call invalidate() on the HttpSession.
request - the current HttpServletRequest.
response - the current HttpServletResponse.

getFullContextPath

public String getFullContextPath(HttpServletRequest request)
Description copied from interface: ServerAdapter
Return the webapp context path for the given request. This differs from HttpServletRequest.getContextPath() only in that it will return a valid value even if the request is for the default webapp.

Specified by:
getFullContextPath in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.

ensureFailover

public void ensureFailover(String attrName,
                           Object attrVal,
                           HttpServletRequest request)
Description copied from interface: ServerAdapter
Ensure that the given session attribute is replicated in a cluster for session failover. This method does not need to be implemented for servers that do not support clustering and session failover.

Specified by:
ensureFailover in interface ServerAdapter
Parameters:
attrName - the name of the session attribute for which failover should be ensured.
attrVal - the value of the given session attribute.
request - the current HttpServletRequest.

initServletContext

public void initServletContext(ServletContext servletContext)
Description copied from interface: ServerAdapter
Called upon the initialization of the given ServletContext.

Specified by:
initServletContext in interface ServerAdapter
Parameters:
servletContext - the ServletContext being initialized.

beginRequest

public void beginRequest(HttpServletRequest request,
                         HttpServletResponse response)
Description copied from interface: ServerAdapter
Called at the beginning of each processed request.

Specified by:
beginRequest in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.
response - the current HttpServletResponse.

endRequest

public void endRequest(HttpServletRequest request,
                       HttpServletResponse response)
Description copied from interface: ServerAdapter
Called at the end of each processed request.

Specified by:
endRequest in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.
response - the current HttpServletResponse.

createControlBeanContext

public ControlBeanContext createControlBeanContext(HttpServletRequest request,
                                                   HttpServletResponse response)
Description copied from interface: ServerAdapter
Get a context object to support Java Controls.

Specified by:
createControlBeanContext in interface ServerAdapter
Parameters:
request - the current HttpServletRequest.
response - the current HttpServletResponse.
Returns:
a new ControlBeanContext.

getReloadableClassDirs

public File[] getReloadableClassDirs()
Description copied from interface: ServerAdapter
Get the build directory (or directories) where reloadable classes reside.

Specified by:
getReloadableClassDirs in interface ServerAdapter
Returns:
an array of URLs to indicate where reloadable classes reside, or null if there are no appropriate directories.
See Also:
ReloadableClassHandler

getServletContext

protected ServletContext getServletContext()