All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.foreach.across.modules.adminweb.events.AdminWebUrlRegistry Maven / Gradle / Ivy

/*
 * Copyright 2014 the original author or authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.foreach.across.modules.adminweb.events;

import com.foreach.across.core.events.AcrossEvent;
import com.foreach.across.modules.adminweb.AdminWeb;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;

public class AdminWebUrlRegistry implements AcrossEvent
{
	private final AdminWeb adminWeb;
	private final ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry;

	public AdminWebUrlRegistry( AdminWeb adminWeb,
	                            ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry ) {
		this.adminWeb = adminWeb;
		this.registry = registry;
	}

	public ExpressionUrlAuthorizationConfigurer.AuthorizedUrl match( String... antPatterns ) {
		String[] prefixed = new String[antPatterns.length];

		for ( int i = 0; i < antPatterns.length; i++ ) {
			prefixed[i] = adminWeb.path( antPatterns[i] );
		}

		return registry.antMatchers( prefixed );
	}

	public ExpressionUrlAuthorizationConfigurer.AuthorizedUrl match( HttpMethod httpMethod, String... antPatterns ) {
		String[] prefixed = new String[antPatterns.length];

		for ( int i = 0; i < antPatterns.length; i++ ) {
			prefixed[i] = adminWeb.path( antPatterns[i] );
		}

		return registry.antMatchers( httpMethod, prefixed );
	}

	public ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry getRegistry() {
		return registry;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy