diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index aa2782227a..eca9719c27 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -20,7 +20,7 @@ name: Maven CI
on:
workflow_dispatch: {}
push:
- branches: [ main ]
+ branches: [ main, 1.9.x ]
pull_request:
branches: [ ]
diff --git a/pom.xml b/pom.xml
index 54b5a8ef8a..52cb7efacb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,6 +111,7 @@
4.1
+ 3.12.4
1.8.0
2.5.14
4.12
@@ -666,6 +667,12 @@
${easymock.version}
test
+
+ org.mockito
+ mockito-core
+ ${mockito.version}
+ test
+
org.codehaus.groovy
@@ -1229,6 +1236,7 @@
https://docs.spring.io/spring/docs/2.5.x/javadoc-api/
https://junit.org/junit4/javadoc/4.12/
http://easymock.org/api/easymock/2.4
+ https://javadoc.io/doc/org.mockito/mockito-core/${mockito.version}/org/mockito/Mockito.html
https://www.quartz-scheduler.org/api/1.8.6/
diff --git a/web/src/test/java/org/apache/shiro/web/filter/authz/AuthorizationFilterTest.java b/web/src/test/java/org/apache/shiro/web/filter/authz/AuthorizationFilterTest.java
index dba7cb530e..5278975ef2 100644
--- a/web/src/test/java/org/apache/shiro/web/filter/authz/AuthorizationFilterTest.java
+++ b/web/src/test/java/org/apache/shiro/web/filter/authz/AuthorizationFilterTest.java
@@ -29,7 +29,10 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import static org.easymock.EasyMock.*;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
/**
* Test cases for the {@link AuthorizationFilter} class.
@@ -43,22 +46,20 @@ public void testUserOnAccessDeniedWithResponseError() throws IOException {
//log in the user using the account provided by the superclass for tests:
SecurityUtils.getSubject().login(new UsernamePasswordToken("test", "test"));
-
+
AuthorizationFilter filter = new AuthorizationFilter() {
@Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)
- throws Exception {
+ protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
return false; //for this test case
}
};
- HttpServletRequest request = createNiceMock(HttpServletRequest.class);
- HttpServletResponse response = createNiceMock(HttpServletResponse.class);
+ HttpServletRequest request = mock(HttpServletRequest.class);
+ HttpServletResponse response = mock(HttpServletResponse.class);
- response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
- replay(response);
+ // response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
filter.onAccessDenied(request, response);
- verify(response);
+ verify(response).sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
@Test
@@ -73,27 +74,22 @@ public void testUserOnAccessDeniedWithRedirect() throws IOException {
AuthorizationFilter filter = new AuthorizationFilter() {
@Override
- protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)
- throws Exception {
+ protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
return false; //for this test case
}
};
filter.setUnauthorizedUrl(unauthorizedUrl);
- HttpServletRequest request = createNiceMock(HttpServletRequest.class);
- HttpServletResponse response = createNiceMock(HttpServletResponse.class);
-
- expect(request.getContextPath()).andReturn("/").anyTimes();
+ HttpServletRequest request = mock(HttpServletRequest.class);
+ HttpServletResponse response = mock(HttpServletResponse.class);
String encoded = "/" + unauthorizedUrl;
- expect(response.encodeRedirectURL(unauthorizedUrl)).andReturn(encoded);
+ when(response.encodeRedirectURL(unauthorizedUrl)).thenReturn(encoded);
response.sendRedirect(encoded);
- replay(request);
- replay(response);
filter.onAccessDenied(request, response);
- verify(request);
- verify(response);
+ verify(response, atLeastOnce()).sendRedirect(encoded);
+ verify(response).encodeRedirectURL(unauthorizedUrl);
}
-}
+}
\ No newline at end of file