Tik-76.115 Luovutus opponointi, v5.0

Ryhmä: Hayabusa, Työ: TeamAhma, Vastuuhenkilö: Christian Jalio

Muutoslogi


Sisällysluettelo

Esipuhe

Testauksen kohteen on ollut TeamAhman Tik-76.115 kurssille tekemä sovelluskehikko jonka tarkoituksena on tarjota yleinen rajapinta erillaisten käyttäjätietolähteiden käyttäjien tarkistamiselle.

Tällä hetkellä sovelluskehikko tukee LDAP ja SQL palvelimia ja sitä on TeamAhman toimesta testattu ymmärtääksemme ainakin Windows 2000 ympäristössä Java 1.2:lla ja Oracle 8i SQL palvelimella.

Testausympäristömme koostui Linux palvelimesta Java 1.3:lla ja MySQL SQL palvelimesta, eli huomattavan erilainen kuin TeamAhman testiympäristö. Kuitenkin kun kyseessä on Java ja Javan JDBC rajapinta olimme vakuuttuneita että sovelluskehikolla oli kaikki mahdollisuudet toimia. Testasimme myös valmiilla (käsin tehdyllä) tietolähteellä.

Katsoimme tärkeäksi arvioida itse autentikointi ja authorisointi toiminnallisuuden lisäksi myös asennus ja konfigurointia sekä käyttöohjetta jotka ovat mielestämme tärkeä osa sovelluskehikkoa.

Testiraportit

Testiraportti keinotekoisesta tietolähteestä

CASE#1:Testiraportti: 

Case #1 Yleinen Toiminta 
Testin järjestysnumero: #1 
Testattavat osiot: Koko sovelluskehikon yleinen toiminta normaalitilanteissa. 
Testin tyyppi: Systeemitestaus 
Testausympäristö: Java 1.3 Linuxilla
Käytetyt ohjelmat: TestClass (kts. CASE#1:Testaussuunnitelma v1.1) 
Käytetyt tyngät/ajurit: - 
Päivämäärä: 17.04.2001 
Aloitusaika: 20:30 
Lopetusaika: 22:30 
Testaaja: Ilpo Nyyssönen
Status: Ok 
Bugit: 0 
Referenssit: Testaussuunnitelma v.1.1 
             CASE#1:Testaussuunnitelma v.1.1 
Liitteet (1kpl): 1)Testiloki

Testiraportti MySQL tietolähdettä käyttäen

CASE#1:Testiraportti: 

Case #1 Yleinen Toiminta 
Testin järjestysnumero: #1 
Testattavat osiot: Koko sovelluskehikon yleinen toiminta normaalitilanteissa. 
Testin tyyppi: Systeemitestaus 
Testausympäristö: Java 1.3 Linuxilla + MySQL tietokanta
Käytetyt ohjelmat: TestClass (kts. CASE#1:Testaussuunnitelma v1.1) 
Käytetyt tyngät/ajurit: - 
Päivämäärä: 17.04.2001 
Aloitusaika: 20:30 
Lopetusaika: 22:30 
Testaaja: Ilpo Nyyssönen
Status: Ok 
Bugit: 0 
Referenssit: Testaussuunnitelma v.1.1 
             CASE#1:Testaussuunnitelma v.1.1 
Liitteet (1kpl): 1)Testiloki

Järjestelmän osien arviot

Tähän kappaleeseen on eritelty järjestelmän eri osien arviot jotka eivät ilmene testiraporteista. Pidimme järjestelmän testauksen kannalta tärkeänä myös asennusta ja konfigurointia jotka on tämän takia sisällytetty.

Käyttöohje

Käyttöohje on erittäin niukka ja tiivis ja tästä johtuen järjestelmän käyttöönotto vaikeutuu huomattavasti. Voisi jopa sanoa että jos käyttöohje olisi kattava niin järjestelmän voisi ottaa käyttöön alle tunnissa olettaen että tietokanta palvelin olisi valmiiksi konfiguroitu. Ohjeesta puuttuvat kokonaan detailirikkaat konfigurointi ohjeet (esim step by step ja laajat esimerkit), tietokanta/LDAP kenttien koostumukset ja käyttö järjestelmän kanssa ja lista käyttäjien yleisimmistä virheistä/ troubleshooting. Kehittäjän näkökulmasta API dokumentaatio olisi erittäin hyvä lisä ohjeeseen.

Asennus

Asennus on erittäin yksinkertainen ja helppo ja sujui moitteettomasti.

Konfigurointi

Konfigurointi oli vaikea sillä ohje oli lyhyt ja jätti paljon ainoan esimerkin varaan. Huomattavaa tuskaa tuotti myös tietokannan käyttöönotto jonka kenttien määrittely jäi arvaamisen varaan ohjeen puutteellisuuden takia. Jatkoa ajatellen tämä osuus vaatii huomattavaa panostusta.

Autentikointi ja Authorisointi

Autentikointi ja authorisointi ovat järjestelmän päätoimnnallisuudet ja kun konfigurointi vaiheesta on onnistuneesti päästy ylitse nämä toimivat aivan niin kuin olettaisikin itse kirjoitetulla tietolähteellä. Kehuttavaa on komentorajapinnan kätevyys ja looginen järjestys jonka ansiosta sovelluskehikko voimakas työkalu.

Vikatilanteiden käsittely

Määritellyt tilanteet (eli esimerkiksi käyttäjän puuttuminen) on hoidettu niin kuin on määritelty. Huomioitavaa kuitenkin on esimerkiksi määrittelemättömien tilanteiden käsittely, kuten tietokantapalvelun autentikoinnin epäonnistuminen tai puuttuminen kokonaan jotka antavat epäselviä ja huomattavan määrän erilaisia ilmoituksia.

Vaikuttaisi siltä, että odottamattomista poikkeuksista yksinkertaisesti vain tulostetaan viesti logiin ja jatketaan eteenpäin. Tämä on erittäin suuri ongelma rajapinnan käyttäjän käyttäjän kannalta, koska sovelluskehikon sisällä tapahtuviin vakaviin virheisiin ei pystytä reagoimaan millään tavoin.

Yhteenveto

Erinomaisesti suunniteltu ja toimiva järjestelmä jonka käyttöönottokynnys on huomattava niukan käyttöohjeen ja heikon virhekäsittelyn takia. Jatkokehitys voisi sisältää wizard tyylisen konfigurointi ohjelman joka kysyy palvelimen tyyppiä ja osoitetta, ajureiden sijaintia, kenttien nimiä jne ja asettaa tiedot konfiguraatiotiedostoihin sekä testaa toimivuuden saman tien. Tämän tyyppinen ohjelma myöskin helpottaisi käyttöohjeeseen kohdistuvan paineen määrää.

Liitteet

Keinotekoisen tietolähteen ajologit

0    [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Initialize CommandManager...
10   [main] DEBUG :  - Starting random number generator
5022 [main] DEBUG :  - CommandFactory: Initializing
5024 [main] DEBUG :  - Command loaded name: TEST_COMMAND class: TestCommand
5025 [main] DEBUG :  - Command loaded name: AHMA_PASSWORD_AUTH class: fi.aware.AHMA.securitymanager.PasswordAuthenticationCommand
5025 [main] DEBUG :  - CommandFactory: Initialization complete
5049 [main] DEBUG :  - DemoUserDatasource created and initiliazed with 2 users.
5062 [main] DEBUG :  - DemoCredentialsDatasource created and initialized with 2 sets of credentials.
5066 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Initialize CommandMap...
5077 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMap initialized.
5185 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: signature
5185 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: [B
5187 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public byte[] fi.aware.AHMA.securitymanager.Principal.getSignature()
5187 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void fi.aware.AHMA.securitymanager.Principal.setSignature(byte[])
5187 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: userID
5187 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String test.OpponentPrincipal.getUserID()
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void test.OpponentPrincipal.setUserID(java.lang.String)
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: password
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String test.OpponentPrincipal.getPassword()
5188 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void test.OpponentPrincipal.setPassword(java.lang.String)
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: name
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String fi.aware.AHMA.securitymanager.Principal.getName()
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void fi.aware.AHMA.securitymanager.Principal.setName(java.lang.String)
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: class
5189 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.Class
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public final native java.lang.Class java.lang.Object.getClass()
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: null
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: sessionId
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: long
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public long fi.aware.AHMA.securitymanager.Principal.getSessionId()
5190 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: null
5191 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandManager initialized.
5191 [main] INFO  :  - // Is a valid user and has a right to execute TestCommand
5191 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
5195 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
5195 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
5195 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5195 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5195 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
5198 [main] DEBUG :  - DemoUserDatasource: Authentication successful for 'user1'!
5199 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user1 Session id: 0
5216 [main] DEBUG :  - Session id: 0
5216 [main] DEBUG :  - Starting random number generation...
5217 [main] DEBUG :  - Nonce generated: 746419583
5217 [main] DEBUG :  - Starting generation of hash...
5219 [main] DEBUG :  - Hash generated: [B@67d940
5219 [main] DEBUG :  - SessionId and signature inserted into the principal
5219 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user1 Session id: 0
5220 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session id: 0
5220 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session created
5220 [main] DEBUG fi.aware.AHMA.securitymanager.PasswordAuthentication  - Session created and principal updated for principal: Principal: user1 Session id: 0
5222 [main] INFO  :  - Principal authenticated!
5222 [main] INFO  :  - Principal object retrieved: Principal: user1 Session id: 0
5223 [main] INFO  :  - Session id: 0
5223 [main] INFO  :  - Signed session id: [B@67d940
5223 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: TEST_COMMAND
5223 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
5223 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
5223 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: TEST_COMMAND
5224 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
5224 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - SecuredCommand execution started...
5224 [main] DEBUG :  - Check right to excute
5224 [main] DEBUG :  - Get session for principal Principal: user1 Session id: 0
5224 [main] DEBUG :  - Session found!
5225 [main] DEBUG :  - Starting permission implication check...
5225 [main] DEBUG :  - Generating actionkeywords array...
5225 [main] DEBUG :  - Array generation complete.
5225 [main] DEBUG :  - Starting comparing keywords...
5226 [main] DEBUG :  - The permission TEST_COMMAND actions:  is implied
5226 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Principal has right to execute command
5226 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Handing command to command target
5226 [main] INFO  :  - Starting command execution...
5228 [main] INFO  :  - Command executed successfully
5228 [main] INFO  :  - Response message: Hello administrator!
5228 [main] INFO  :  - // Is a valid user but has no right to execute TestCommand
5228 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
5228 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
5228 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
5229 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5229 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5229 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
5229 [main] DEBUG :  - DemoUserDatasource: Authentication successful for 'user2'!
5229 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user2 Session id: 0
5229 [main] DEBUG :  - Session id: 1
5229 [main] DEBUG :  - Starting random number generation...
5230 [main] DEBUG :  - Nonce generated: 1634302272
5230 [main] DEBUG :  - Starting generation of hash...
5231 [main] DEBUG :  - Hash generated: [B@7ffe01
5231 [main] DEBUG :  - SessionId and signature inserted into the principal
5231 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user2 Session id: 1
5231 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session id: 1
5231 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session created
5231 [main] DEBUG fi.aware.AHMA.securitymanager.PasswordAuthentication  - Session created and principal updated for principal: Principal: user2 Session id: 1
5231 [main] INFO  :  - Principal authenticated!
5231 [main] INFO  :  - Principal object retrieved: Principal: user2 Session id: 1
5253 [main] INFO  :  - Session id: 1
5253 [main] INFO  :  - Signed session id: [B@7ffe01
5254 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: TEST_COMMAND
5254 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
5254 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
5254 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: TEST_COMMAND
5254 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
5254 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - SecuredCommand execution started...
5254 [main] DEBUG :  - Check right to excute
5255 [main] DEBUG :  - Get session for principal Principal: user2 Session id: 1
5255 [main] DEBUG :  - Session found!
fi.aware.AHMA.securitymanager.NoPermissionException: The principal has no rights to execute command: TEST_COMMAND
	at fi.aware.AHMA.CommandManagerImpl.execute(CommandManagerImpl.java:135)
	at fi.aware.AHMA.CommandManager.execute(CommandManager.java:57)
	at OpponentTestClass.startSession(OpponentTestClass.java:46)
	at OpponentTestClass.whitebox(OpponentTestClass.java:21)
	at OpponentTestClass.main(OpponentTestClass.java:12)
5257 [main] INFO  :  - // Is not a valid user
5257 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
5257 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
5257 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
5257 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5257 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
5257 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
5258 [main] DEBUG :  - DemoUserDatasource: UserId uiui not found!
5261 [main] ERROR :  - ERROR: Authentication unsuccessful!
fi.aware.AHMA.securitymanager.AuthenticationException: Invalid login or password
	at fi.aware.AHMA.datasources.DemoUserDatasource.authenticate(DemoUserDatasource.java:100)
	at fi.aware.AHMA.securitymanager.PasswordAuthentication.execute(PasswordAuthentication.java:72)
	at fi.aware.AHMA.CommandManagerImpl.execute(CommandManagerImpl.java:140)
	at fi.aware.AHMA.CommandManager.execute(CommandManager.java:57)
	at OpponentTestClass.startSession(OpponentTestClass.java:36)
	at OpponentTestClass.whitebox(OpponentTestClass.java:24)
	at OpponentTestClass.main(OpponentTestClass.java:12)
5261 [main] INFO  :  - Principal authenticated!
5261 [main] INFO  :  - Principal object retrieved: null
java.lang.NullPointerException
	at OpponentTestClass.startSession(OpponentTestClass.java:41)
	at OpponentTestClass.whitebox(OpponentTestClass.java:24)
	at OpponentTestClass.main(OpponentTestClass.java:12)
    

MySQL tietolähteen ajologit

0    [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Initialize CommandManager...
11   [main] DEBUG :  - Starting random number generator
5023 [main] DEBUG :  - CommandFactory: Initializing
5025 [main] DEBUG :  - Command loaded name: TEST_COMMAND class: TestCommand
5026 [main] DEBUG :  - Command loaded name: AHMA_PASSWORD_AUTH class: fi.aware.AHMA.securitymanager.PasswordAuthenticationCommand
5026 [main] DEBUG :  - CommandFactory: Initialization complete
5056 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Userdatasource query: SELECT * FROM Users WHERE userID = ? AND password = ?
7384 [main] DEBUG fi.aware.AHMA.datasources.SQLCredentialsDatasource  - CredentialsDatasource query: SELECT uSERID,PERMISSIONID,ACTIONSTRING FROM CREDENTIALS WHERE uSERID = ?
7387 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Initialize CommandMap...
7397 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMap initialized.
7530 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: signature
7530 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: [B
7532 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public byte[] fi.aware.AHMA.securitymanager.Principal.getSignature()
7532 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void fi.aware.AHMA.securitymanager.Principal.setSignature(byte[])
7532 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: userID
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String test.OpponentPrincipal.getUserID()
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void test.OpponentPrincipal.setUserID(java.lang.String)
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: password
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String test.OpponentPrincipal.getPassword()
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void test.OpponentPrincipal.setPassword(java.lang.String)
7533 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: name
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.String
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public java.lang.String fi.aware.AHMA.securitymanager.Principal.getName()
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: public void fi.aware.AHMA.securitymanager.Principal.setName(java.lang.String)
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: class
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: java.lang.Class
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public final native java.lang.Class java.lang.Object.getClass()
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: null
7534 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Property name: sessionId
7535 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Type: long
7535 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Getter: public long fi.aware.AHMA.securitymanager.Principal.getSessionId()
7535 [main] DEBUG fi.aware.AHMA.datasources.SimplePrincipalAnalyzer  - Setter: null
7535 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandManager initialized.
7535 [main] INFO  :  - // Is a valid user and has a right to execute TestCommand
7536 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
7536 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
7536 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
7536 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7536 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7537 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
7644 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute sessionId Value null
7644 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute name Value null
7645 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute password Value user1
7645 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute class Value null
7645 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute signature Value null
7645 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute userID Value user1
7673 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user1 Session id: 0
7677 [main] DEBUG :  - Session id: 0
7677 [main] DEBUG :  - Starting random number generation...
7678 [main] DEBUG :  - Nonce generated: 392511277
7678 [main] DEBUG :  - Starting generation of hash...
7680 [main] DEBUG :  - Hash generated: [B@5b9e68
7680 [main] DEBUG :  - SessionId and signature inserted into the principal
7681 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user1 Session id: 0
7681 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session id: 0
7681 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session created
7681 [main] DEBUG fi.aware.AHMA.securitymanager.PasswordAuthentication  - Session created and principal updated for principal: Principal: user1 Session id: 0
7685 [main] INFO  :  - Principal authenticated!
7685 [main] INFO  :  - Principal object retrieved: Principal: user1 Session id: 0
7685 [main] INFO  :  - Session id: 0
7685 [main] INFO  :  - Signed session id: [B@5b9e68
7686 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: TEST_COMMAND
7686 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
7686 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
7686 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: TEST_COMMAND
7686 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
7686 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - SecuredCommand execution started...
7687 [main] DEBUG :  - Check right to excute
7687 [main] DEBUG :  - Get session for principal Principal: user1 Session id: 0
7687 [main] DEBUG :  - Session found!
7687 [main] DEBUG :  - Starting permission implication check...
7688 [main] DEBUG :  - Generating actionkeywords array...
7688 [main] DEBUG :  - Array generation complete.
7688 [main] DEBUG :  - Starting comparing keywords...
7688 [main] DEBUG :  - The permission TEST_COMMAND actions:  is implied
7688 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Principal has right to execute command
7688 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Handing command to command target
7688 [main] INFO  :  - Starting command execution...
7690 [main] INFO  :  - Command executed successfully
7690 [main] INFO  :  - Response message: Hello administrator!
7690 [main] INFO  :  - // Is a valid user but has no right to execute TestCommand
7691 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
7691 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
7691 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
7691 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7691 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7691 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
7821 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute sessionId Value null
7821 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute name Value null
7821 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute password Value user2
7822 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute class Value null
7822 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute signature Value null
7823 [main] DEBUG fi.aware.AHMA.datasources.SQLUserDatasource  - Attribute userID Value user2
7849 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user2 Session id: 0
7849 [main] DEBUG :  - Session id: 1
7849 [main] DEBUG :  - Starting random number generation...
7850 [main] DEBUG :  - Nonce generated: 517974758
7850 [main] DEBUG :  - Starting generation of hash...
7850 [main] DEBUG :  - Hash generated: [B@ee9d6
7851 [main] DEBUG :  - SessionId and signature inserted into the principal
7851 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Creating a new session for principal: Principal: user2 Session id: 1
7851 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session id: 1
7851 [main] DEBUG fi.aware.AHMA.securitymanager.SessionManager  - Session created
7851 [main] DEBUG fi.aware.AHMA.securitymanager.PasswordAuthentication  - Session created and principal updated for principal: Principal: user2 Session id: 1
7851 [main] INFO  :  - Principal authenticated!
7851 [main] INFO  :  - Principal object retrieved: Principal: user2 Session id: 1
7851 [main] INFO  :  - Session id: 1
7851 [main] INFO  :  - Signed session id: [B@ee9d6
7852 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: TEST_COMMAND
7852 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
7852 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
7852 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: TEST_COMMAND
7852 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
7852 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - SecuredCommand execution started...
7852 [main] DEBUG :  - Check right to excute
7855 [main] DEBUG :  - Get session for principal Principal: user2 Session id: 1
7855 [main] DEBUG :  - Session found!
fi.aware.AHMA.securitymanager.NoPermissionException: The principal has no rights to execute command: TEST_COMMAND
	at fi.aware.AHMA.CommandManagerImpl.execute(CommandManagerImpl.java:135)
	at fi.aware.AHMA.CommandManager.execute(CommandManager.java:57)
	at OpponentTestClass.startSession(OpponentTestClass.java:46)
	at OpponentTestClass.whitebox(OpponentTestClass.java:21)
	at OpponentTestClass.main(OpponentTestClass.java:12)
7857 [main] INFO  :  - // Is not a valid user
7857 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Execute Command: AHMA_PASSWORD_AUTH
7857 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - Get CommandTarget...
7857 [main] DEBUG fi.aware.AHMA.CommandManagerImpl  - CommandTarget found.
7857 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7857 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - Search CommandMapEntry for Command: AHMA_PASSWORD_AUTH
7857 [main] INFO  fi.aware.AHMA.commandmap.CommandMap  - CommandMapEntry found.
7863 [main] ERROR :  - ERROR: Authentication unsuccessful!
fi.aware.AHMA.securitymanager.AuthenticationException: Authentication failed: Invalid login
	at fi.aware.AHMA.datasources.SQLUserDatasource.authenticate(SQLUserDatasource.java:257)
	at fi.aware.AHMA.securitymanager.PasswordAuthentication.execute(PasswordAuthentication.java:72)
	at fi.aware.AHMA.CommandManagerImpl.execute(CommandManagerImpl.java:140)
	at fi.aware.AHMA.CommandManager.execute(CommandManager.java:57)
	at OpponentTestClass.startSession(OpponentTestClass.java:36)
	at OpponentTestClass.whitebox(OpponentTestClass.java:24)
	at OpponentTestClass.main(OpponentTestClass.java:12)
7864 [main] INFO  :  - Principal authenticated!
7864 [main] INFO  :  - Principal object retrieved: null
java.lang.NullPointerException
	at OpponentTestClass.startSession(OpponentTestClass.java:41)
	at OpponentTestClass.whitebox(OpponentTestClass.java:24)
	at OpponentTestClass.main(OpponentTestClass.java:12)