本文整理汇总了Java中net.sourceforge.stripes.controller.ExecutionContext类的典型用法代码示例。如果您正苦于以下问题:Java ExecutionContext类的具体用法?Java ExecutionContext怎么用?Java ExecutionContext使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ExecutionContext类属于net.sourceforge.stripes.controller包,在下文中一共展示了ExecutionContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
HttpServletRequest request = context.getActionBeanContext().getRequest();
String url = HttpUtil.getRequestedPath(request);
if (request.getQueryString() != null)
url = url + '?' + request.getQueryString();
log.debug("Intercepting request: ", url);
Resolution resolution = context.proceed();
// A null resolution here indicates a normal flow to the next stage
boolean authed = ((BugzookyActionBeanContext) context.getActionBeanContext()).getUser() != null;
if (!authed && resolution == null) {
ActionBean bean = context.getActionBean();
if (bean != null && !bean.getClass().isAnnotationPresent(Public.class)) {
log.warn("Thwarted attempted to access ", bean.getClass().getSimpleName());
return new RedirectResolution(LoginActionBean.class).addParameter("targetUrl", url);
}
}
log.debug("Allowing public access to ", context.getActionBean().getClass().getSimpleName());
return resolution;
}
示例2: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
@Override
public Resolution intercept(ExecutionContext context) throws Exception {
String eventName = context.getActionBeanContext().getEventName();
Resolution r = context.proceed();
// If we have validation errors, Stripes will automatically try to
// forward to the previous action. This unfortunately
// ends up in a StripesRuntimeException "Multiple event parameters [...]
// are present in this request ..." because
// the previous event was not cleared and now stripes has 2 possible
// events. The problem with this is that Stripes
// does not know which one to choose. Here we attempt to overcome this
// by offering Stripes an event that it may
// ignore. See
// com.geecommerce.core.web.AnnotatedClassActionResolver:548.
if (eventName != null && context.getActionBeanContext().getValidationErrors().size() > 0
&& context.getActionBeanContext().getRequest().getAttribute(Constant.STRIPES_IGNORE_EVENT) == null) {
context.getActionBeanContext().getRequest().setAttribute(Constant.STRIPES_IGNORE_EVENT, eventName);
}
return r;
}
示例3: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
logger.debug("Retrieving Stripes objects");
ActionBeanContext actionContext = context.getActionBeanContext();
ActionBean actionBean = context.getActionBean();
Method handler = context.getHandler();
logger.debug("Retrieving Servlet API objects");
HttpServletRequest request = actionContext.getRequest();
Dispatch dispatch = DispatcherUtil.getDispatch(request);
if(SecurityLogic.isAllowed(request, dispatch, actionBean, handler)) {
logger.debug("Security check passed.");
return context.proceed();
} else {
return new ForbiddenAccessResolution();
}
}
示例4: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
logger.debug("Retrieving Stripes objects");
ActionBeanContext actionContext = context.getActionBeanContext();
logger.debug("Retrieving Servlet API objects");
HttpServletRequest request = actionContext.getRequest();
if (request.getDispatcherType() == DispatcherType.REQUEST) {
logger.debug("Starting page response timer");
StopWatch stopWatch = new StopWatch();
// There is no need to stop this timer.
stopWatch.start();
request.setAttribute(RequestAttributes.STOP_WATCH, stopWatch);
}
Resolution resolution = dispatch(actionContext);
return resolution != null ? resolution : context.proceed();
}
示例5: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
ActionBean actionBean = context.getActionBean();
Method handler = context.getHandler();
logger.debug("Checking guards on {}", handler);
if(ButtonsLogic.doGuardsPass(actionBean, handler)) {
return context.proceed();
} else {
logger.warn("Operation not permitted. Method: " + context.getHandler());
if(actionBean instanceof Guarded) {
return ((Guarded) actionBean).guardsFailed(handler);
} else {
return new ErrorResolution(CONFLICT);
}
}
}
示例6: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
if(context.getHandler() != null && context.getHandler().isAnnotationPresent(ControlsCache.class)) {
return context.proceed();
}
HttpServletResponse response = context.getActionBeanContext().getResponse();
// Avoid caching of dynamic pages
//HTTP 1.0
response.setHeader(ServletConstants.HTTP_PRAGMA, ServletConstants.HTTP_PRAGMA_NO_CACHE);
response.setDateHeader(ServletConstants.HTTP_EXPIRES, 0);
//HTTP 1.1
response.addHeader(ServletConstants.HTTP_CACHE_CONTROL, ServletConstants.HTTP_CACHE_CONTROL_NO_CACHE);
response.addHeader(ServletConstants.HTTP_CACHE_CONTROL, ServletConstants.HTTP_CACHE_CONTROL_NO_STORE);
//response.addHeader(ServletConstants.HTTP_CACHE_CONTROL, ServletConstants.HTTP_CACHE_CONTROL_MUST_REVALIDATE);
//response.addHeader(ServletConstants.HTTP_CACHE_CONTROL, ServletConstants.HTTP_CACHE_CONTROL_MAX_AGE + 0);
return context.proceed();
}
示例7: assertAuthorized
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public void assertAuthorized(final ExecutionContext context) throws AuthorizationException {
super.assertAuthorized(new MethodInvocation() {
@Override
public Object proceed() throws Throwable {
return null;
}
@Override
public Method getMethod() {
return context.getHandler();
}
@Override
public Object[] getArguments() {
return new Object[0];
}
@Override
public Object getThis() {
return context.getActionBean();
}
});
}
示例8: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
@Override
public Resolution intercept(ExecutionContext context) throws Exception {
HttpServletRequest request = context.getActionBeanContext().getRequest();
String url = HttpUtil.getRequestedPath(request);
if (request.getQueryString() != null) {
url = url + '?' + request.getQueryString();
}
log.debug("Intercepting request: ", url);
Resolution resolution = context.proceed();
// A null resolution here indicates a normal flow to the next stage
boolean authed = ((MobileActionBeanContext) context.getActionBeanContext()).getCustomer() != null;
if (!authed && resolution == null) {
ActionBean bean = context.getActionBean();
if (bean != null && !bean.getClass().isAnnotationPresent(Public.class)) {
log.warn("Thwarted attempted to access ", bean.getClass().getSimpleName());
return new RedirectResolution(CustomerAuthorizationActionBean.class).addParameter("targetUrl", url);
}
}
log.debug("Allowing public access to ", context.getActionBean().getClass().getSimpleName());
return resolution;
}
示例9: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
@Override
public Resolution intercept(ExecutionContext context) throws Exception {
HttpServletRequest request = context.getActionBeanContext().getRequest();
String url = HttpUtil.getRequestedPath(request);
if (request.getQueryString() != null) {
url = url + '?' + request.getQueryString();
}
log.debug("Intercepting request: ", url);
Resolution resolution = context.proceed();
// A null resolution here indicates a normal flow to the next stage
boolean authed = ((MobileActionBeanContext) context.getActionBeanContext()).getUser() != null;
if (!authed && resolution == null) {
ActionBean bean = context.getActionBean();
if (bean != null && !bean.getClass().isAnnotationPresent(Public.class)) {
log.warn("Thwarted attempted to access ", bean.getClass().getSimpleName());
return new RedirectResolution(UserAuthorizationActionBean.class).addParameter("targetUrl", url);
}
}
log.debug("Allowing public access to ", context.getActionBean().getClass().getSimpleName());
return resolution;
}
示例10: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
/**
* {@inheritDoc} Sanitize all the request parameters before allowing the ActionBean resolution to proceed.
*/
public Resolution intercept(ExecutionContext context) throws Exception {
StripesRequestWrapper stripesWrapper = null;
HttpServletRequest originalRequest = null;
try {
currentContext.set(context);
stripesWrapper = StripesRequestWrapper.findStripesWrapper(context.getActionBeanContext().getRequest());
originalRequest = (HttpServletRequest) stripesWrapper.getRequest();
stripesWrapper.setRequest(new XssRequestWrapper(originalRequest));
return context.proceed();
} finally {
currentContext.remove();
if (stripesWrapper != null && originalRequest != null) {
stripesWrapper.setRequest(originalRequest);
}
}
}
示例11: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
/**
* Invoked when intercepting the flow of execution.
*
* @param context the ExecutionContext of the request currently being processed
* @return the result of calling context.proceed(), or if the interceptor wishes to change
* the flow of execution, a Resolution
* @throws Exception if any non-recoverable errors occur
*/
public Resolution intercept(ExecutionContext context)
throws Exception
{
HttpServletRequest request = context.getActionBeanContext().getRequest();
if (resourceBundleFactory != null)
{
ResourceBundle bundle = resourceBundleFactory.getDefaultBundle(request.getLocale());
setMessageResourceBundle(request, bundle);
}
setOtherResourceBundles(request);
return context.proceed();
}
示例12: interceptBindingAndValidation
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
/**
* Intercept execution for binding and/or (custom) validations. Checks that the security doesn't deny access before
* any error messages are shown.
*
* @param executionContext the context of the execution being intercepted
* @return the resulting {@link net.sourceforge.stripes.action.Resolution}; returns {@link ExecutionContext#proceed()} if all is well
* @throws Exception on error
*/
protected Resolution interceptBindingAndValidation(ExecutionContext executionContext)
throws Exception
{
Resolution resolution = executionContext.proceed();
// We're handling binding and/or validation. If there are errors and a resolution to display them, check if
// access is allowed. If explicitly denied, access is denied (as showing errors would both be pointless and an
// information leak).
if (resolution != null && !executionContext.getActionBeanContext().getValidationErrors().isEmpty() &&
Boolean.FALSE.equals(getAccessAllowed(executionContext)))
{
// If the security manager denies access, deny access.
LOG.debug("Binding and/or validation failed, and the security manager has denied access.");
resolution = handleAccessDenied(executionContext.getActionBean(), executionContext.getHandler());
}
// Return the result.
return resolution;
}
示例13: interceptEventHandling
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
/**
* Intercept execution for event handling. Checks if the security manager allows access before allowing the event.
*
* @param executionContext the context of the execution being intercepted
* @return the resulting {@link net.sourceforge.stripes.action.Resolution}; returns {@link ExecutionContext#proceed()} if all is well
* @throws Exception on error
*/
protected Resolution interceptEventHandling(ExecutionContext executionContext)
throws Exception
{
// Before handling the event, check if access is allowed.
// If not explicitly allowed, access is denied.
Resolution resolution;
if (Boolean.TRUE.equals(getAccessAllowed(executionContext)))
{
resolution = executionContext.proceed();
}
else
{
LOG.debug("The security manager has denied access.");
resolution = handleAccessDenied(executionContext.getActionBean(), executionContext.getHandler());
}
return resolution;
}
示例14: getAccessAllowed
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
/**
* Determine if the security manager allows access.
* The return value of this method is the same as the result of
* {@link SecurityManager#getAccessAllowed(ActionBean,Method) getAccessAllowed(ActionBean, Method)}
* of the current security manager, unless there is nu security manager (in which case the event is allowed).
*
* @param executionContext the current execution context
* @return whether or not the security manager allows access, if a decision can be made
*/
protected Boolean getAccessAllowed(ExecutionContext executionContext)
{
LOG.debug("Checking access for " + executionContext + " at " + executionContext.getLifecycleStage());
Boolean accessAllowed;
if (securityManager == null)
{
LOG.debug("There is no security manager, so access is allowed by default.");
accessAllowed = true;
}
else
{
ActionBean actionBean = executionContext.getActionBean();
Method handler = executionContext.getHandler();
accessAllowed = securityManager.getAccessAllowed(actionBean, handler);
LOG.debug("Security manager returned access allowed: " + accessAllowed);
}
return accessAllowed;
}
示例15: intercept
import net.sourceforge.stripes.controller.ExecutionContext; //导入依赖的package包/类
public Resolution intercept(ExecutionContext context) throws Exception {
// Continue on and execute other filters and the lifecycle code.
Resolution resolution = context.proceed();
// Get all fields with session.
Collection<Field> fields = getSessionFields(context.getActionBean().getClass());
// Restores values from session.
if (LifecycleStage.ActionBeanResolution.equals(context.getLifecycleStage())) {
this.restoreFields(fields, context.getActionBean(), context.getActionBeanContext());
}
// Store values in session.
if (LifecycleStage.EventHandling.equals(context.getLifecycleStage())) {
// Dont't update values in session if a validation error occured.
if (context.getActionBeanContext().getValidationErrors().isEmpty()) {
if (fields.size() > 0)
this.saveFields(fields, context.getActionBean(), context.getActionBeanContext().getRequest().getSession());
}
}
return resolution;
}