使用 Postman 测试 spring 安全性
Testing spring security with Postman
我已经使用 Spring 安全性配置了基于表单的身份验证。当我在我的 Web 应用程序中使用登录表单登录时,它工作正常。
它也适用于 cURL:
curl --data "j_username=myname&j_password=mypassword" http://localhost:8080/test/j_spring_security_check --verbose
但是,我无法使用 Postman 使其工作:
少了什么?我需要通过身份验证才能测试其他服务。
最后,我使用 Postman Interceptor chrome extension
让 Postman 意识到了身份验证
启用扩展程序(通过单击 Postman 应用程序中的卫星图标),您只需使用您网站的登录表单登录,然后您就可以开始使用需要在 Postman 中进行身份验证的服务。
使用 http.httpBasic 对我有用。
http.httpBasic()
.and()
.authorizeRequests()
.antMatchers("/api/home")
.hasRole("ADMIN")
.antMatchers("/api/product/*")
.hasRole("ADMIN")
.and()
.formLogin();
您可以通过在“授权”选项卡下的 postman 下拉列表中提供的各种授权类型在 postman 中实现 authentication/authorization。
以下是使用 基本身份验证 的步骤,默认情况下 spring 安全性提供。
在 spring 安全性中,您可以在 application.properties 文件中自定义您的凭据,如下所示。
spring.security.user.name=你
spring.security.user.password=加仑
在邮递员上使用基本身份验证时,您将在授权选项卡上设置凭据。
点击 Authorization,选择类型为 Basic Auth,将显示凭证部分,供您输入用户名和密码。
对我来说,Postman Interceptor 无法正常工作,
所以我做了以下操作,现在我可以登录服务器了。
- Select POST 从下拉列表中请求并在请求 URL 部分中输入登录名 URL。
- Select 来自选项卡的正文
- 如图所示输入用户名和密码密钥和值。
- 然后单击“发送”,这将在邮递员中创建一个临时 cookie 并在那里进行会话。
- 您也可以执行 GET 请求注销 URL 以注销会话。或者从发送按钮下方的 Cookies 中删除 cookie。
http.httpBasic
正在使用 Postman 测试 spring 安全性。
例如,从配置 class MyConfiguration.java
添加了覆盖配置方法
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/**").permitAll().anyRequest().authenticated()
.and().formLogin().permitAll().and().logout().permitAll().and().httpBasic();
http.cors().disable().csrf().disable();
}
注意:要访问 POST
、PUT
和 DELETE
请求,您需要按照上面的代码禁用 cors
和 csrf
。
我已经使用 Spring 安全性配置了基于表单的身份验证。当我在我的 Web 应用程序中使用登录表单登录时,它工作正常。
它也适用于 cURL:
curl --data "j_username=myname&j_password=mypassword" http://localhost:8080/test/j_spring_security_check --verbose
但是,我无法使用 Postman 使其工作:
少了什么?我需要通过身份验证才能测试其他服务。
最后,我使用 Postman Interceptor chrome extension
让 Postman 意识到了身份验证启用扩展程序(通过单击 Postman 应用程序中的卫星图标),您只需使用您网站的登录表单登录,然后您就可以开始使用需要在 Postman 中进行身份验证的服务。
使用 http.httpBasic 对我有用。
http.httpBasic()
.and()
.authorizeRequests()
.antMatchers("/api/home")
.hasRole("ADMIN")
.antMatchers("/api/product/*")
.hasRole("ADMIN")
.and()
.formLogin();
您可以通过在“授权”选项卡下的 postman 下拉列表中提供的各种授权类型在 postman 中实现 authentication/authorization。
以下是使用 基本身份验证 的步骤,默认情况下 spring 安全性提供。
在 spring 安全性中,您可以在 application.properties 文件中自定义您的凭据,如下所示。
spring.security.user.name=你 spring.security.user.password=加仑
在邮递员上使用基本身份验证时,您将在授权选项卡上设置凭据。 点击 Authorization,选择类型为 Basic Auth,将显示凭证部分,供您输入用户名和密码。
对我来说,Postman Interceptor 无法正常工作,
所以我做了以下操作,现在我可以登录服务器了。
- Select POST 从下拉列表中请求并在请求 URL 部分中输入登录名 URL。
- Select 来自选项卡的正文
- 如图所示输入用户名和密码密钥和值。
- 然后单击“发送”,这将在邮递员中创建一个临时 cookie 并在那里进行会话。
- 您也可以执行 GET 请求注销 URL 以注销会话。或者从发送按钮下方的 Cookies 中删除 cookie。
http.httpBasic
正在使用 Postman 测试 spring 安全性。
例如,从配置 class MyConfiguration.java
添加了覆盖配置方法@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/**").permitAll().anyRequest().authenticated()
.and().formLogin().permitAll().and().logout().permitAll().and().httpBasic();
http.cors().disable().csrf().disable();
}
注意:要访问 POST
、PUT
和 DELETE
请求,您需要按照上面的代码禁用 cors
和 csrf
。