1313
1414namespace Tests \Authentication \Filters ;
1515
16+ use CodeIgniter \Encryption \Encryption ;
1617use CodeIgniter \Shield \Entities \AccessToken ;
1718use CodeIgniter \Shield \Entities \User ;
1819use CodeIgniter \Shield \Filters \HmacAuth ;
@@ -30,6 +31,14 @@ final class HmacFilterTest extends AbstractFilterTestCase
3031 protected string $ alias = 'hmacAuth ' ;
3132 protected string $ classname = HmacAuth::class;
3233
34+ protected function setUp (): void
35+ {
36+ parent ::setUp ();
37+
38+ $ authConfig = config ('AuthToken ' );
39+ $ authConfig ->hmacEncryptionKey = Encryption::createKey ();
40+ }
41+
3342 public function testFilterNotAuthorized (): void
3443 {
3544 $ result = $ this ->call ('get ' , 'protected-route ' );
@@ -47,7 +56,7 @@ public function testFilterSuccess(): void
4756 $ user = fake (UserModel::class);
4857 $ token = $ user ->generateHmacToken ('foo ' );
4958
50- $ rawToken = $ this ->generateRawHeaderToken ($ token ->secret , $ token ->secret2 , '' );
59+ $ rawToken = $ this ->generateRawHeaderToken ($ token ->secret , $ token ->rawSecretKey , '' );
5160 $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ rawToken ])
5261 ->get ('protected-route ' );
5362
@@ -68,7 +77,7 @@ public function testFilterInvalidSignature(): void
6877 $ user = fake (UserModel::class);
6978 $ token = $ user ->generateHmacToken ('foo ' );
7079
71- $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->secret2 , 'bar ' )])
80+ $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->rawSecretKey , 'bar ' )])
7281 ->get ('protected-route ' );
7382
7483 $ result ->assertStatus (401 );
@@ -80,7 +89,7 @@ public function testRecordActiveDate(): void
8089 $ user = fake (UserModel::class);
8190 $ token = $ user ->generateHmacToken ('foo ' );
8291
83- $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->secret2 , '' )])
92+ $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->rawSecretKey , '' )])
8493 ->get ('protected-route ' );
8594
8695 // Last Active should be greater than 'updated_at' column
@@ -97,15 +106,15 @@ public function testFiltersProtectsWithScopes(): void
97106 $ token2 = $ user2 ->generateHmacToken ('foo ' , ['users-write ' ]);
98107
99108 // User 1 should be able to access the route
100- $ result1 = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token1 ->secret , $ token1 ->secret2 , '' )])
109+ $ result1 = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token1 ->secret , $ token1 ->rawSecretKey , '' )])
101110 ->get ('protected-user-route ' );
102111
103112 $ result1 ->assertStatus (200 );
104113 // Last Active should be greater than 'updated_at' column
105114 $ this ->assertGreaterThan (auth ('hmac ' )->user ()->updated_at , auth ('hmac ' )->user ()->last_active );
106115
107116 // User 2 should NOT be able to access the route
108- $ result2 = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token2 ->secret , $ token2 ->secret2 , '' )])
117+ $ result2 = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token2 ->secret , $ token2 ->rawSecretKey , '' )])
109118 ->get ('protected-user-route ' );
110119
111120 $ result2 ->assertStatus (401 );
@@ -120,7 +129,7 @@ public function testBlocksInactiveUsers(): void
120129 // Activation only required with email activation
121130 setting ('Auth.actions ' , ['register ' => null ]);
122131
123- $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->secret2 , '' )])
132+ $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->rawSecretKey , '' )])
124133 ->get ('protected-route ' );
125134
126135 $ result ->assertStatus (200 );
@@ -129,7 +138,7 @@ public function testBlocksInactiveUsers(): void
129138 // Now require user activation and try again
130139 setting ('Auth.actions ' , ['register ' => '\CodeIgniter\Shield\Authentication\Actions\EmailActivator ' ]);
131140
132- $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->secret2 , '' )])
141+ $ result = $ this ->withHeaders (['Authorization ' => 'HMAC-SHA256 ' . $ this ->generateRawHeaderToken ($ token ->secret , $ token ->rawSecretKey , '' )])
133142 ->get ('protected-route ' );
134143
135144 $ result ->assertStatus (403 );
0 commit comments