⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractprocessingfilter.java

📁 acegi构造安全的java系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		return authenticationManager;	}	/**	 * Specifies the default <code>filterProcessesUrl</code> for the	 * implementation.	 * 	 * @return the default <code>filterProcessesUrl</code>	 */	public abstract String getDefaultFilterProcessesUrl();	/**	 * Supplies the default target Url that will be used if no saved request is	 * found or the <tt>alwaysUseDefaultTargetUrl</tt> propert is set to true.	 * Override this method of you want to provide a customized default Url (for	 * example if you want different Urls depending on the authorities of the	 * user who has just logged in).	 * 	 * @return the defaultTargetUrl property	 */	public String getDefaultTargetUrl() {		return defaultTargetUrl;	}	public Properties getExceptionMappings() {		return new Properties(exceptionMappings);	}	public String getFilterProcessesUrl() {		return filterProcessesUrl;	}	public RememberMeServices getRememberMeServices() {		return rememberMeServices;	}	/**	 * Does nothing. We use IoC container lifecycle services instead.	 * 	 * @param arg0 ignored	 * 	 * @throws ServletException ignored	 */	public void init(FilterConfig arg0) throws ServletException {	}	public boolean isAlwaysUseDefaultTargetUrl() {		return alwaysUseDefaultTargetUrl;	}	public boolean isContinueChainBeforeSuccessfulAuthentication() {		return continueChainBeforeSuccessfulAuthentication;	}	public static String obtainFullRequestUrl(HttpServletRequest request) {		SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute(				AbstractProcessingFilter.ACEGI_SAVED_REQUEST_KEY);		return (savedRequest == null) ? null : savedRequest.getFullRequestUrl();	}	protected void onPreAuthentication(HttpServletRequest request, HttpServletResponse response)			throws AuthenticationException, IOException {	}	protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response,			Authentication authResult) throws IOException {	}	protected void onUnsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response,			AuthenticationException failed) throws IOException {	}	/**	 * <p>	 * Indicates whether this filter should attempt to process a login request	 * for the current invocation.	 * </p>	 * <p>	 * It strips any parameters from the "path" section of the request URL (such	 * as the jsessionid parameter in	 * <em>http://host/myapp/index.html;jsessionid=blah</em>) before matching	 * against the <code>filterProcessesUrl</code> property.	 * </p>	 * <p>	 * Subclasses may override for special requirements, such as Tapestry	 * integration.	 * </p>	 * 	 * @param request as received from the filter chain	 * @param response as received from the filter chain	 * 	 * @return <code>true</code> if the filter should attempt authentication,	 * <code>false</code> otherwise	 */	protected boolean requiresAuthentication(HttpServletRequest request, HttpServletResponse response) {		String uri = request.getRequestURI();		int pathParamIndex = uri.indexOf(';');		if (pathParamIndex > 0) {			// strip everything after the first semi-colon			uri = uri.substring(0, pathParamIndex);		}		if ("".equals(request.getContextPath())) {			return uri.endsWith(filterProcessesUrl);		}		return uri.endsWith(request.getContextPath() + filterProcessesUrl);	}	protected void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url)			throws IOException {		String finalUrl;		if (!url.startsWith("http://") && !url.startsWith("https://")) {			if (useRelativeContext) {				finalUrl = url;			}			else {				finalUrl = request.getContextPath() + url;			}		}		else if (useRelativeContext) {			// Calculate the relative URL from the fully qualifed URL, minus the			// protocol and base context.			int len = request.getContextPath().length();			int index = url.indexOf(request.getContextPath()) + len;			finalUrl = url.substring(index);			if (finalUrl.length() > 1 && finalUrl.charAt(0) == '/') {				finalUrl = finalUrl.substring(1);			}		}		else {			finalUrl = url;		}		Assert.isTrue(!response.isCommitted(),				"Response already committed; the authentication mechanism must be able to modify buffer size");		response.setBufferSize(bufferSize);		response.sendRedirect(response.encodeRedirectURL(finalUrl));	}	public void setAlwaysUseDefaultTargetUrl(boolean alwaysUseDefaultTargetUrl) {		this.alwaysUseDefaultTargetUrl = alwaysUseDefaultTargetUrl;	}	public void setApplicationEventPublisher(ApplicationEventPublisher eventPublisher) {		this.eventPublisher = eventPublisher;	}	public void setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource) {		Assert.notNull(authenticationDetailsSource, "AuthenticationDetailsSource required");		this.authenticationDetailsSource = authenticationDetailsSource;	}	public void setAuthenticationFailureUrl(String authenticationFailureUrl) {		this.authenticationFailureUrl = authenticationFailureUrl;	}	public void setAuthenticationManager(AuthenticationManager authenticationManager) {		this.authenticationManager = authenticationManager;	}	public void setContinueChainBeforeSuccessfulAuthentication(boolean continueChainBeforeSuccessfulAuthentication) {		this.continueChainBeforeSuccessfulAuthentication = continueChainBeforeSuccessfulAuthentication;	}	public void setDefaultTargetUrl(String defaultTargetUrl) {		Assert.isTrue(defaultTargetUrl.startsWith("/") | defaultTargetUrl.startsWith("http"),				"defaultTarget must start with '/' or with 'http(s)'");		this.defaultTargetUrl = defaultTargetUrl;	}	public void setExceptionMappings(Properties exceptionMappings) {		this.exceptionMappings = exceptionMappings;	}	public void setFilterProcessesUrl(String filterProcessesUrl) {		this.filterProcessesUrl = filterProcessesUrl;	}	public void setMessageSource(MessageSource messageSource) {		this.messages = new MessageSourceAccessor(messageSource);	}	public void setRememberMeServices(RememberMeServices rememberMeServices) {		this.rememberMeServices = rememberMeServices;	}	protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response,			Authentication authResult) throws IOException {		if (logger.isDebugEnabled()) {			logger.debug("Authentication success: " + authResult.toString());		}		SecurityContextHolder.getContext().setAuthentication(authResult);		if (logger.isDebugEnabled()) {			logger.debug("Updated SecurityContextHolder to contain the following Authentication: '" + authResult + "'");		}		String targetUrl = determineTargetUrl(request);		if (logger.isDebugEnabled()) {			logger.debug("Redirecting to target URL from HTTP Session (or default): " + targetUrl);		}		onSuccessfulAuthentication(request, response, authResult);		rememberMeServices.loginSuccess(request, response, authResult);		// Fire event		if (this.eventPublisher != null) {			eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(authResult, this.getClass()));		}		sendRedirect(request, response, targetUrl);	}	protected String determineTargetUrl(HttpServletRequest request) {		// Don't attempt to obtain the url from the saved request if		// alwaysUsedefaultTargetUrl is set		String targetUrl = alwaysUseDefaultTargetUrl ? null : obtainFullRequestUrl(request);		if (targetUrl == null) {			targetUrl = getDefaultTargetUrl();		}		return targetUrl;	}	protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response,			AuthenticationException failed) throws IOException {		SecurityContextHolder.getContext().setAuthentication(null);		if (logger.isDebugEnabled()) {			logger.debug("Updated SecurityContextHolder to contain null Authentication");		}		String failureUrl = determineFailureUrl(request, failed);		if (logger.isDebugEnabled()) {			logger.debug("Authentication request failed: " + failed.toString());		}		try {			request.getSession().setAttribute(ACEGI_SECURITY_LAST_EXCEPTION_KEY, failed);		}		catch (Exception ignored) {		}		onUnsuccessfulAuthentication(request, response, failed);		rememberMeServices.loginFail(request, response);		sendRedirect(request, response, failureUrl);	}    protected String determineFailureUrl(HttpServletRequest request, AuthenticationException failed) {        return exceptionMappings.getProperty(failed.getClass().getName(), authenticationFailureUrl);    }    public AuthenticationDetailsSource getAuthenticationDetailsSource() {		// Required due to SEC-310		return authenticationDetailsSource;	}	public void setBufferSize(int bufferSize) {		this.bufferSize = bufferSize;	}	public void setUseRelativeContext(boolean useRelativeContext) {		this.useRelativeContext = useRelativeContext;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -