首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Spring REST API提供安全性?

如何为Spring REST API提供安全性?
EN

Stack Overflow用户
提问于 2017-05-05 20:17:29
回答 2查看 72关注 0票数 0

API客户端有用户名和密码。

在postman中,客户端选择基本身份验证并输入用户名和密码。当向服务器发出请求时,postman将基本身份验证令牌发送到服务器。

现在,在服务器端,我们只有一个包含用户名和密码的表。我们没有为客户端维护任何角色,这就是为什么我们只有一个表。现在,如何使用基本身份验证令牌来解析用户名和密码。并解决了如何将其与数据库中存储的用户名和密码进行比较的问题。

我是SPRING的初学者,很长一段时间都在努力实现它。请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2017-05-05 22:36:22

您可以阅读此主题http://www.svlada.com/jwt-token-authentication-with-spring-boot/。这是非常有用的。它基于jwt身份验证。

票数 1
EN

Stack Overflow用户

发布于 2017-05-05 20:55:46

尝试使用Spring安全性。这是简单和健壮的。您可以通过创建WebSecurityConfigAdapter来为您的应用程序启用http basic安全性。https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#jc-httpsecurity

如果你不想使用Spring Security,你可以编写你的自定义实现。Http基本身份验证令牌只不过是用户名和密码的冒号分隔的base64编码形式。例如,用户名和密码以用户名:密码的base64编码形式发送。所以你可以添加一个SecurityFilter,如下所示。

代码语言:javascript
复制
public class SecurityFilter implements Filter{  
public void doFilter(ServletRequest req, ServletResponse resp,  
    FilterChain chain) throws IOException, ServletException {  
    String auth = httpRequest.getHeader("Authorization");
    if (auth != null && auth.startsWith("Basic")) {
        String base64Auth = auth.substring("Basic".length()).trim();
        String credentials = new String(Base64.getDecoder().decode(base64Auth),
                Charset.forName("UTF-8"));
        String[] usernamePassword = credentials.split(":",2);
    // Query to database and do authentication here using username and password. 
    //if(successfull)
    //    chain.doFilter(req, resp);
    //else
    //    return 401 error
}  

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43804751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档