`

REST安全实践·3.DIGEST认证

阅读更多

3. UserDatabaseRealm + DIGEST认证

  • Accesses authentication information stored in an UserDatabase JNDI resource, which is typically backed by an XML document (conf/tomcat-users.xml).
  • 通过读取XML格式的JNDI资源,获取认证信息

3.1 创建Realm所需的数据表

mysqldump simple_service_book -uroot -p > security.sql

3.2 配置UserDatabaseRealm

$CATALINA_BASE/conf/server.xml

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 

Eclipse内置Tomcat配置 eclipse.server.xml

$CATALINA_BASE/conf/tomcat-users.xml

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
    <role rolename="admin" />
    <role rolename="user" />
    <user name="eric" password="han" roles="admin" />
    <user name="caroline" password="zhang" roles="user" />
</tomcat-users>

Eclipse内置Tomcat tomcat-users配置 eclipse.tomcat-users.xml

3.3 数据库驱动

$CATALINA_HOME/lib

M2_REPO/mysql/mysql-connector-java/5.1.25/mysql-connector-java-5.1.25.jar

3.4 配置应用的web.xml

/security-rest/src/main/webapp/WEB-INF/web.xml

<security-constraint>
    <web-resource-collection>
        <url-pattern>/webapi/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>UPDATE</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <url-pattern>/webapi/*</url-pattern>
        <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>DIGEST</auth-method>
</login-config>

3.5 DIGEST认证

C:\Users\hanl.m2\repository\org\apache\tomcat\tomcat-catalina\7.0.42\tomcat-catalina-7.0.42-sources.jar

Realm.authenticate() digest-handling 组合加密、比较都是在服务器端完成的。 md5(md5(username:realm:password):nonce:nc:cnonce:qop:md5(httpmethod:uri))

3.6 应用权限测试

DIGEST认证与BASIC认证的算法不同,但呈现方式相同。都是弹出窗口,让用户输入用户名和口令。

1
1
分享到:
评论

相关推荐

    Building a Rest API with Spring

    3. 为REST API添加Spring Security:这部分详细说明了为REST API集成Spring Security的过程,包括了web.xml中的Spring Security配置、安全配置、认证入口点、登录表单的配置、认证状态的正确返回码以及认证失败时的...

    WebApi认证共8页.pdf.zip

    7. 安全性考虑:在实现WebApi认证时,需要考虑安全最佳实践,如使用HTTPS防止中间人攻击,定期更新凭据,避免明文存储敏感信息,以及启用CSRF(跨站请求伪造)防护。 通过"WebApi认证共8页.pdf.zip"这个压缩包,...

    spring-security-digest:spring-security 与摘要认证示例

    在这个特定的示例 "spring-security-digest" 中,我们关注的是摘要认证(Digest Authentication),这是一种比基本认证更安全的身份验证机制,因为它不直接在请求中传递明文密码。 摘要认证的基本原理是,服务器向...

    谷歌插件Advanced-REST-client

    4. **认证支持**: 提供了对OAuth、Basic Auth、Digest Auth等多种认证方式的支持,方便处理需要身份验证的API接口。 5. **环境变量**: 用户可以创建并管理自己的环境变量,用于快速填充请求参数,提高工作效率。 6...

    webservice认证和调用

    2. **摘要认证(Digest Authentication)**:相比基本认证,摘要认证更加安全。它使用哈希函数对密码进行处理,避免了明文传输密码的风险。 3. **WS-Security**:这是一种为Web服务提供安全的规范,包括签名、加密...

    Build rest API

    - **Security Requirements**: 讨论了RESTful API的安全需求,包括认证和授权机制。 - **Spring Security**: 介绍了Spring Security框架及其核心特性。 #### 3.2 Basic Authentication - **HTTP Basic Auth**: 描述...

    Demo.zip_DEMO_webservice

    可能涉及的身份验证机制有基本认证、 Digest认证,或者更高级的如OAuth、JWT。同时,SSL/TLS协议用于加密传输,防止数据被窃取。"Demo" 应该考虑了这些安全措施,以保护服务和数据的安全。 5. **开发工具和框架**:...

    无标题auth-master

    在Web应用中,通常会实现基于HTTP的认证机制,如基本认证(Basic Authentication)和Digest认证。此外,OAuth2.0和OpenID Connect是现代Web服务中广泛使用的开放标准,允许用户通过第三方服务进行身份验证。 2. **...

    CXF 学习必备神器

    7. **安全与认证**:了解CXF支持的各种安全机制,如基本认证、digest认证、TLS/SSL安全传输以及WS-Security等,以及如何在服务中实现这些安全策略。 8. **异常处理**:学习CXF的异常处理机制,如何将Java异常映射到...

    springboot+Thymeleaf+MD5加密前后端分离,米尚商城项目,可用于(毕业设计).zip

    3. 权限控制:如OAuth2.0或JWT(JSON Web Tokens)可能被用来实现用户认证和授权,确保只有合法用户能访问特定资源。 4. RESTful API设计:后端提供的接口应遵循REST原则,以便于前端调用和维护。 5. 测试:单元测试...

    webService cxf 例子

    7. **安全性**:CXF提供了多种安全机制,如基本认证、Digest认证、SSL/TLS、WS-Security等,确保Web服务的安全通信。 8. **数据绑定**:CXF支持JAXB(Java Architecture for XML Binding),用于自动将XML数据转换...

    最新zend framework 中文手册

    10. **安全设置**: 配置`Zend_Auth`和`Zend_Acl`,实现用户认证和授权。 **学习资源** - **官方文档**: 官方提供的详尽指南,涵盖了框架的所有组件和功能。 - **示例代码**: 通过示例代码理解框架的用法和最佳实践...

    cxfWebService

    6. **安全与认证**:CXF支持多种安全机制,如基本认证、 Digest认证、OAuth、SSL/TLS等,可以保护Web服务免受未经授权的访问。 7. **异常处理**:CXF允许自定义错误处理,将业务异常转换为合适的HTTP状态码和响应...

    Python语言开发RESTful API指南

    常用的认证机制有基本认证(Basic Auth)、摘要认证(Digest Auth)和OAuth。基本认证是通过用户名和密码进行认证,摘要认证则提供了一定程度的安全性增强,而OAuth则允许第三方应用在没有暴露用户名和密码的情况下...

    user-login-java

    遵循OWASP(开放网络应用安全项目)的最佳实践,如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等,可以确保系统的安全性和用户数据的隐私。 综上所述,用户登录Java涉及到的技术点包括身份验证机制、密码加密、...

Global site tag (gtag.js) - Google Analytics