Ich habe Spring Security in meiner Spring -Boot -Anwendung implementiert und ebne Benutzeranmeldeinformationen aus Hashicorp Vault. Ich kann eine Verbindung zum Hashicorp -Tresor mithilfe der Vault -Vorlage von Spring Vault herstellen und eine erfolgreiche Gewölbeantwort empfangen. So sieht die Antwort aus (es ist eine Reihe von Hashmaps) < /p>
//VaultResponse output structure
[
data: {
password: someVal,
username: user,
db.password: somePass,
db.username: user
},
metadata: {
created_time: 2025-01-01,
custom_metadata: null,
detection_time: ,
destroyed: false,
version: 7
}
]
< /code>
Ich habe HashMap des genauen Datensatzes erstellt und einer ArrayList hinzugefügt und erwartet, dass diese Daten bei der Verspottung von VaultResponse zurückgegeben werden, aber stattdessen VaulTreponse.data kommt immer als Null zurück. < /p>
@Test
public void loadUserByUsername_TestSuccess()
{
VaultResponse mockResponse = Mockito.mock(VaultResponse.class);
Map dataMap = new HashMap();
dataMap.put("password", "someVal");
dataMap.put("username", "user");
dataMap.put("db.password", "somePass");
dataMap.put("db.username", "user");
// Create the nested 'metadata' map
Map metadataMap = new HashMap();
metadataMap.put("created_time", "2025-01-01");
metadataMap.put("custom_metadata", null);
metadataMap.put("detection_time", "");
metadataMap.put("destroyed", false);
metadataMap.put("version", 7);
// Create a List to hold the dataMap and metadataMap
List responseList = new ArrayList();
responseList.add(dataMap);
responseList.add(metadataMap);
//**VaultResponse.data is always coming back as null**
when(mockResponse.getData()).thenReturn(responseList);
**Edit: Adding service class implemenation**
My service class implement's Spring Security's User's interface. The method specifically being tested is :
< /code>
public class UserServiceClass
< /code>
{
public UserDetails loadUserByUsername(String
username) throws UsernameNotFoundException{
//VaultTemplate bean is injected using
@Autowired
VaultResponse response =vaulTemplate.read(path);
if(response != null && response.getData != null)
{
Map vaultData =
response.getData();
//Traverse through vaultData, and extract
username and password
if(password == null or username == null){
throw new UsernameNotFoundException("User not
found");
} //end if
return new User(username,password);
}
} //end method
} //end class
//My test implementation
public class UserServiceclassTest{
@Mock
UserDetails userDetails;
@Mock
VaultTemplate vaultTemplate;
< /code>
@InjectMock
UserServiceClass userServiceClass
VaultResponse mockResponse =
Mockito.mock(VaultResponse.class);
Map dataMap = new HashMap ();
dataMap.put("password", "someVal");
dataMap.put("username", "user");
dataMap.put("db.password", "somePass");
dataMap.put("db.username", "user");
// Create the nested 'metadata' map
Map metadataMap = new
HashMap();
metadataMap.put("created_time", "2025-0101");
metadataMap.put("custom_metadata", null);
metadataMap.put("detection_time", "");
metadataMap.put("destroyed", false);
metadataMap.put("version", 7);
// Create a List to hold the dataMap and
metadataMap
List responseList = new
ArrayList();
responseList.add(dataMap);
responseList.add(metadataMap);
public void loadUserByUsername() {
< /code>
when(mockResponse.getData()).thenReturn(responseList);
[b]//Here mockResponse is throwing null exception[/b]
when(vaultTemplate.read(path)).thenReturn(mockResponse);
//Traverse through data to get username and pass it to
function being called
UserDetails userDetails =
userServiceClass.loadUserByUsername(username);
//Assertions
}
}
Issue:
What am I doing wrong here? How can I mock VaultResponse.class to return the needed response structure?
Thank you
Ich habe Spring Security in meiner Spring -Boot -Anwendung implementiert und ebne Benutzeranmeldeinformationen aus Hashicorp Vault. Ich kann eine Verbindung zum Hashicorp -Tresor mithilfe der Vault -Vorlage von Spring Vault herstellen und eine erfolgreiche Gewölbeantwort empfangen. So sieht die Antwort aus (es ist eine Reihe von Hashmaps) < /p> [code] //VaultResponse output structure [
data: {
password: someVal,
username: user,
db.password: somePass,
db.username: user
},
metadata: {
created_time: 2025-01-01,
custom_metadata: null,
detection_time: ,
destroyed: false,
version: 7
}
]
< /code> Ich habe HashMap des genauen Datensatzes erstellt und einer ArrayList hinzugefügt und erwartet, dass diese Daten bei der Verspottung von VaultResponse zurückgegeben werden, aber stattdessen VaulTreponse.data kommt immer als Null zurück. < /p> @Test public void loadUserByUsername_TestSuccess() { VaultResponse mockResponse = Mockito.mock(VaultResponse.class);
// Create a List to hold the dataMap and metadataMap List responseList = new ArrayList(); responseList.add(dataMap); responseList.add(metadataMap);
//**VaultResponse.data is always coming back as null** when(mockResponse.getData()).thenReturn(responseList);
**Edit: Adding service class implemenation**
My service class implement's Spring Security's User's interface. The method specifically being tested is :
< /code> public class UserServiceClass < /code> { public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException{ //VaultTemplate bean is injected using @Autowired
// Create a List to hold the dataMap and metadataMap List responseList = new ArrayList(); responseList.add(dataMap); responseList.add(metadataMap);
public void loadUserByUsername() { < /code> when(mockResponse.getData()).thenReturn(responseList); [b]//Here mockResponse is throwing null exception[/b] when(vaultTemplate.read(path)).thenReturn(mockResponse); //Traverse through data to get username and pass it to function being called UserDetails userDetails = userServiceClass.loadUserByUsername(username); //Assertions } }
Issue: What am I doing wrong here? How can I mock VaultResponse.class to return the needed response structure?
Ich habe Spring Security in meiner Spring -Boot -Anwendung implementiert und ebne Benutzeranmeldeinformationen aus Hashicorp Vault. Ich kann eine Verbindung zum Hashicorp -Tresor mithilfe der Vault...
Ich lerne etwas über Spring Boot und versuche, die Sicherheitsfilterkette mit JWT zu konfigurieren.
Ich stehe vor einem Problem, bei dem immer 403-Fehler zurückgegeben werden. Wenn ich beispielsweise...
Ich schreibe einen Junit 4 -Test mit Mockito 2 und PowerMockito, aber mit seltsamer Probleme konfrontiert, während er eine Methode verspottet. class = Lang-Java PrettyPrint-Override >
@Test
Ich schreibe einen Junit 4 -Test mit Mockito 2 und PowerMockito, aber mit seltsamer Probleme konfrontiert, während er eine Methode verspottet.
Hier ist der Test:
@Test
public void...