mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
Rename classes
This commit is contained in:
@@ -301,7 +301,7 @@ public class AuthenticationFilter extends HttpFilter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
chain.doFilter(new SecurityHttpServletRequestWrapper(request, username),
|
chain.doFilter(new PropagatePrincipleServletRequestWrapper(request, username),
|
||||||
response);
|
response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,37 +38,17 @@ package sonia.scm.web.filter;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletRequestWrapper;
|
import javax.servlet.http.HttpServletRequestWrapper;
|
||||||
|
|
||||||
/**
|
public class PropagatePrincipleServletRequestWrapper extends HttpServletRequestWrapper {
|
||||||
*
|
|
||||||
* @author Sebastian Sdorra
|
|
||||||
*/
|
|
||||||
public class SecurityHttpServletRequestWrapper extends HttpServletRequestWrapper
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
private final String principal;
|
||||||
* Constructs ...
|
|
||||||
*
|
public PropagatePrincipleServletRequestWrapper(HttpServletRequest request, String principal) {
|
||||||
*
|
|
||||||
* @param request
|
|
||||||
* @param principal
|
|
||||||
*/
|
|
||||||
public SecurityHttpServletRequestWrapper(HttpServletRequest request,
|
|
||||||
String principal)
|
|
||||||
{
|
|
||||||
super(request);
|
super(request);
|
||||||
this.principal = principal;
|
this.principal = principal;
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- get methods ----------------------------------------------------------
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRemoteUser()
|
public String getRemoteUser() {
|
||||||
{
|
|
||||||
return principal;
|
return principal;
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- fields ---------------------------------------------------------------
|
|
||||||
|
|
||||||
/** Field description */
|
|
||||||
private final String principal;
|
|
||||||
}
|
}
|
||||||
@@ -42,9 +42,8 @@ import org.apache.shiro.subject.Subject;
|
|||||||
import sonia.scm.Priority;
|
import sonia.scm.Priority;
|
||||||
import sonia.scm.SCMContext;
|
import sonia.scm.SCMContext;
|
||||||
import sonia.scm.config.ScmConfiguration;
|
import sonia.scm.config.ScmConfiguration;
|
||||||
import sonia.scm.security.SecurityRequests;
|
|
||||||
import sonia.scm.web.filter.HttpFilter;
|
import sonia.scm.web.filter.HttpFilter;
|
||||||
import sonia.scm.web.filter.SecurityHttpServletRequestWrapper;
|
import sonia.scm.web.filter.PropagatePrincipleServletRequestWrapper;
|
||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
@@ -61,9 +60,8 @@ import static sonia.scm.api.v2.resources.ScmPathInfo.REST_API_PATH;
|
|||||||
* @author Sebastian Sdorra
|
* @author Sebastian Sdorra
|
||||||
*/
|
*/
|
||||||
@Priority(Filters.PRIORITY_AUTHORIZATION)
|
@Priority(Filters.PRIORITY_AUTHORIZATION)
|
||||||
// TODO find a better way for unprotected resources
|
|
||||||
@WebElement(value = REST_API_PATH + "/(?!v2/ui).*", regex = true)
|
@WebElement(value = REST_API_PATH + "/(?!v2/ui).*", regex = true)
|
||||||
public class SecurityFilter extends HttpFilter
|
public class PropagatePrincipleFilter extends HttpFilter
|
||||||
{
|
{
|
||||||
|
|
||||||
/** name of request attribute for the primary principal */
|
/** name of request attribute for the primary principal */
|
||||||
@@ -73,7 +71,7 @@ public class SecurityFilter extends HttpFilter
|
|||||||
private final ScmConfiguration configuration;
|
private final ScmConfiguration configuration;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SecurityFilter(ScmConfiguration configuration)
|
public PropagatePrincipleFilter(ScmConfiguration configuration)
|
||||||
{
|
{
|
||||||
this.configuration = configuration;
|
this.configuration = configuration;
|
||||||
}
|
}
|
||||||
@@ -92,7 +90,7 @@ public class SecurityFilter extends HttpFilter
|
|||||||
request.setAttribute(ATTRIBUTE_REMOTE_USER, username);
|
request.setAttribute(ATTRIBUTE_REMOTE_USER, username);
|
||||||
|
|
||||||
// wrap servlet request to provide authentication information
|
// wrap servlet request to provide authentication information
|
||||||
chain.doFilter(new SecurityHttpServletRequestWrapper(request, username), response);
|
chain.doFilter(new PropagatePrincipleServletRequestWrapper(request, username), response);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -58,13 +58,13 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit tests for {@link SecurityFilter}.
|
* Unit tests for {@link PropagatePrincipleFilter}.
|
||||||
*
|
*
|
||||||
* @author Sebastian Sdorra
|
* @author Sebastian Sdorra
|
||||||
*/
|
*/
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
@SubjectAware(configuration = "classpath:sonia/scm/shiro-001.ini")
|
@SubjectAware(configuration = "classpath:sonia/scm/shiro-001.ini")
|
||||||
public class SecurityFilterTest {
|
public class PropagatePrincipleFilterTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private HttpServletRequest request;
|
private HttpServletRequest request;
|
||||||
@@ -83,7 +83,7 @@ public class SecurityFilterTest {
|
|||||||
|
|
||||||
private ScmConfiguration configuration;
|
private ScmConfiguration configuration;
|
||||||
|
|
||||||
private SecurityFilter securityFilter;
|
private PropagatePrincipleFilter propagatePrincipleFilter;
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public ShiroRule shiro = new ShiroRule();
|
public ShiroRule shiro = new ShiroRule();
|
||||||
@@ -94,7 +94,7 @@ public class SecurityFilterTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp(){
|
public void setUp(){
|
||||||
this.configuration = new ScmConfiguration();
|
this.configuration = new ScmConfiguration();
|
||||||
this.securityFilter = new SecurityFilter(configuration);
|
this.propagatePrincipleFilter = new PropagatePrincipleFilter(configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -105,7 +105,7 @@ public class SecurityFilterTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testAnonymous() throws IOException, ServletException {
|
public void testAnonymous() throws IOException, ServletException {
|
||||||
securityFilter.doFilter(request, response, chain);
|
propagatePrincipleFilter.doFilter(request, response, chain);
|
||||||
response.sendError(HttpServletResponse.SC_FORBIDDEN);
|
response.sendError(HttpServletResponse.SC_FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,10 +120,10 @@ public class SecurityFilterTest {
|
|||||||
configuration.setAnonymousAccessEnabled(true);
|
configuration.setAnonymousAccessEnabled(true);
|
||||||
|
|
||||||
// execute
|
// execute
|
||||||
securityFilter.doFilter(request, response, chain);
|
propagatePrincipleFilter.doFilter(request, response, chain);
|
||||||
|
|
||||||
// verify and capture
|
// verify and capture
|
||||||
verify(request).setAttribute(SecurityFilter.ATTRIBUTE_REMOTE_USER, SCMContext.USER_ANONYMOUS);
|
verify(request).setAttribute(PropagatePrincipleFilter.ATTRIBUTE_REMOTE_USER, SCMContext.USER_ANONYMOUS);
|
||||||
verify(chain).doFilter(requestCaptor.capture(), responseCaptor.capture());
|
verify(chain).doFilter(requestCaptor.capture(), responseCaptor.capture());
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
@@ -142,10 +142,10 @@ public class SecurityFilterTest {
|
|||||||
authenticateUser(UserTestData.createTrillian());
|
authenticateUser(UserTestData.createTrillian());
|
||||||
|
|
||||||
// execute
|
// execute
|
||||||
securityFilter.doFilter(request, response, chain);
|
propagatePrincipleFilter.doFilter(request, response, chain);
|
||||||
|
|
||||||
// verify and capture
|
// verify and capture
|
||||||
verify(request).setAttribute(SecurityFilter.ATTRIBUTE_REMOTE_USER, "trillian");
|
verify(request).setAttribute(PropagatePrincipleFilter.ATTRIBUTE_REMOTE_USER, "trillian");
|
||||||
verify(chain).doFilter(requestCaptor.capture(), responseCaptor.capture());
|
verify(chain).doFilter(requestCaptor.capture(), responseCaptor.capture());
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Reference in New Issue
Block a user