2 * Copyright (c) 2016 - 2017 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.aaa.shiro.filters;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
15 import org.apache.shiro.authc.AuthenticationToken;
16 import org.apache.shiro.authc.UsernamePasswordToken;
17 import org.junit.Test;
20 * Tests authentication token output utilities.
22 public class AuthenticationTokenUtilsTest {
25 * A sample non-UsernamePasswordToken implementation for testing.
27 private final class NotUsernamePasswordToken implements AuthenticationToken {
30 public Object getPrincipal() {
35 public Object getCredentials() {
41 public void testIsUsernamePasswordToken() throws Exception {
43 final AuthenticationToken nullUsernamePasswordToken = null;
44 assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(nullUsernamePasswordToken));
46 // alternate implementation of AuthenticationToken
47 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
48 assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(notUsernamePasswordToken));
51 final AuthenticationToken positiveUsernamePasswordToken = new UsernamePasswordToken();
52 assertTrue(AuthenticationTokenUtils.isUsernamePasswordToken(positiveUsernamePasswordToken));
57 public void testExtractUsername() throws Exception {
59 final AuthenticationToken nullAuthenticationToken = null;
60 assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
61 AuthenticationTokenUtils.extractUsername(nullAuthenticationToken));
63 // non-UsernamePasswordToken test
64 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
65 assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
66 AuthenticationTokenUtils.extractUsername(notUsernamePasswordToken));
69 final UsernamePasswordToken nullUsername = new UsernamePasswordToken();
70 nullUsername.setUsername(null);
71 assertEquals(AuthenticationTokenUtils.DEFAULT_USERNAME,
72 AuthenticationTokenUtils.extractUsername(nullUsername));
75 final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
76 final String testUsername = "testUser1";
77 positiveUsernamePasswordToken.setUsername(testUsername);
78 assertEquals(testUsername, AuthenticationTokenUtils.extractUsername(positiveUsernamePasswordToken));
82 public void testExtractHostname() throws Exception {
84 final AuthenticationToken nullAuthenticationToken = null;
85 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
86 AuthenticationTokenUtils.extractHostname(nullAuthenticationToken));
88 // non-UsernamePasswordToken test
89 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
90 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
91 AuthenticationTokenUtils.extractHostname(notUsernamePasswordToken));
94 final UsernamePasswordToken nullHostname = new UsernamePasswordToken();
95 nullHostname.setHost(null);
96 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
97 AuthenticationTokenUtils.extractHostname(nullHostname));
100 final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
101 final String testUsername = "testHostname1";
102 positiveUsernamePasswordToken.setHost(testUsername);
103 assertEquals(testUsername, AuthenticationTokenUtils.extractHostname(positiveUsernamePasswordToken));
107 public void testGenerateUnsuccessfulAuthenticationMessage() throws Exception {
108 final UsernamePasswordToken unsuccessfulToken = new UsernamePasswordToken();
109 unsuccessfulToken.setUsername("unsuccessfulUser1");
110 unsuccessfulToken.setHost("unsuccessfulHost1");
111 assertEquals("Unsuccessful authentication attempt by unsuccessfulUser1 from unsuccessfulHost1",
112 AuthenticationTokenUtils.generateUnsuccessfulAuthenticationMessage(unsuccessfulToken));
116 public void testGenerateSuccessfulAuthenticationMessage() throws Exception {
117 final UsernamePasswordToken successfulToken = new UsernamePasswordToken();
118 successfulToken.setUsername("successfulUser1");
119 successfulToken.setHost("successfulHost1");
120 assertEquals("Successful authentication attempt by successfulUser1 from successfulHost1",
121 AuthenticationTokenUtils.generateSuccessfulAuthenticationMessage(successfulToken));