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.*;
13 import org.apache.shiro.authc.AuthenticationToken;
14 import org.apache.shiro.authc.UsernamePasswordToken;
15 import org.junit.Test;
18 * Tests authentication token output utilities.
20 public class AuthenticationTokenUtilsTest {
23 * A sample non-UsernamePasswordToken implementation for testing.
25 private final class NotUsernamePasswordToken implements AuthenticationToken {
28 public Object getPrincipal() {
33 public Object getCredentials() {
39 public void testIsUsernamePasswordToken() throws Exception {
41 final AuthenticationToken nullUsernamePasswordToken = null;
42 assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(nullUsernamePasswordToken));
44 // alternate implementation of AuthenticationToken
45 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
46 assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(notUsernamePasswordToken));
49 final AuthenticationToken positiveUsernamePasswordToken = new UsernamePasswordToken();
50 assertTrue(AuthenticationTokenUtils.isUsernamePasswordToken(positiveUsernamePasswordToken));
55 public void testExtractUsername() throws Exception {
57 final AuthenticationToken nullAuthenticationToken = null;
58 assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
59 AuthenticationTokenUtils.extractUsername(nullAuthenticationToken));
61 // non-UsernamePasswordToken test
62 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
63 assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
64 AuthenticationTokenUtils.extractUsername(notUsernamePasswordToken));
67 final UsernamePasswordToken nullUsername = new UsernamePasswordToken();
68 nullUsername.setUsername(null);
69 assertEquals(AuthenticationTokenUtils.DEFAULT_USERNAME,
70 AuthenticationTokenUtils.extractUsername(nullUsername));
73 final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
74 final String testUsername = "testUser1";
75 positiveUsernamePasswordToken.setUsername(testUsername);
76 assertEquals(testUsername, AuthenticationTokenUtils.extractUsername(positiveUsernamePasswordToken));
80 public void testExtractHostname() throws Exception {
82 final AuthenticationToken nullAuthenticationToken = null;
83 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
84 AuthenticationTokenUtils.extractHostname(nullAuthenticationToken));
86 // non-UsernamePasswordToken test
87 final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
88 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
89 AuthenticationTokenUtils.extractHostname(notUsernamePasswordToken));
92 final UsernamePasswordToken nullHostname = new UsernamePasswordToken();
93 nullHostname.setHost(null);
94 assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
95 AuthenticationTokenUtils.extractHostname(nullHostname));
98 final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
99 final String testUsername = "testHostname1";
100 positiveUsernamePasswordToken.setHost(testUsername);
101 assertEquals(testUsername, AuthenticationTokenUtils.extractHostname(positiveUsernamePasswordToken));
105 public void testGenerateUnsuccessfulAuthenticationMessage() throws Exception {
106 final UsernamePasswordToken unsuccessfulToken = new UsernamePasswordToken();
107 unsuccessfulToken.setUsername("unsuccessfulUser1");
108 unsuccessfulToken.setHost("unsuccessfulHost1");
109 assertEquals("Unsuccessful authentication attempt by unsuccessfulUser1 from unsuccessfulHost1",
110 AuthenticationTokenUtils.generateUnsuccessfulAuthenticationMessage(unsuccessfulToken));
114 public void testGenerateSuccessfulAuthenticationMessage() throws Exception {
115 final UsernamePasswordToken successfulToken = new UsernamePasswordToken();
116 successfulToken.setUsername("successfulUser1");
117 successfulToken.setHost("successfulHost1");
118 assertEquals("Successful authentication attempt by successfulUser1 from successfulHost1",
119 AuthenticationTokenUtils.generateSuccessfulAuthenticationMessage(successfulToken));