|
@@ -0,0 +1,51 @@
|
|
|
|
+package org.springframework.security.matcher;
|
|
|
|
+
|
|
|
|
+import org.hamcrest.Description;
|
|
|
|
+import org.hamcrest.Factory;
|
|
|
|
+import org.hamcrest.Matcher;
|
|
|
|
+import org.hamcrest.TypeSafeMatcher;
|
|
|
|
+import org.springframework.security.Authentication;
|
|
|
|
+
|
|
|
|
+public class AuthenticationMatcher extends TypeSafeMatcher<Authentication> {
|
|
|
|
+ private String username;
|
|
|
|
+ private String password;
|
|
|
|
+ private String[] authorities;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean matchesSafely(Authentication auth) {
|
|
|
|
+ if (!username.equals(auth.getName())) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (password != null && !password.equals(auth.getCredentials())) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void describeTo(Description d) {
|
|
|
|
+ d.appendText("an authentication object with username = '" + username + "'");
|
|
|
|
+ if (password != null) {
|
|
|
|
+ d.appendText(", password = '" + password + "'");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Factory
|
|
|
|
+ public static Matcher<Authentication> anAuthenticationWithUsername(String name) {
|
|
|
|
+ AuthenticationMatcher matcher = new AuthenticationMatcher();
|
|
|
|
+ matcher.username = name;
|
|
|
|
+ return matcher;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Factory
|
|
|
|
+ public static Matcher<Authentication> anAuthenticationWithUsernameAndPassword(String name, String password) {
|
|
|
|
+ AuthenticationMatcher matcher = new AuthenticationMatcher();
|
|
|
|
+ matcher.username = name;
|
|
|
|
+ matcher.password = password;
|
|
|
|
+ return matcher;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|