java - 基于 SOAP 的 Web 服务中的身份验证和角色 (Java)

标签 java web-services jakarta-ee soap soap-client

<分区>

请指导我了解以下内容以及我应该使用哪种技术来实现最佳实现:

  1. 我们有多少种授权/安全类型,哪一种最好。
  2. 我们如何实现基于角色的安全性。
  3. 同样适用于 Restful 服务。

最佳答案

第一个问题可以有两种解释。 首先,您需要一种身份验证方法,即客户端和服务器之间的协议(protocol)。这里有两个:

  • BASIC AUTH - 客户端在请求中以明文形式发送用户名和密码。如果您正在提供内部服务(在您的公司网络内)或拥有加密 channel (HTTPS),则此功能可以正常工作。
  • KERBEROS - 这在 Windows 世界中运行良好,一切都由 Active Directory 控制。但是,如果您尝试将其引入 Java,您将面临噩梦。

其次,您可能需要一个 java 框架来保证安全性。例如,这可以是 spring security。 Spring Security 将自己定位在服务前面的过滤器链中。如果允许请求(例如使用 BASIC_AUTH),则它会通过,否则不会。 Spring Security 可以配置为以多种方式查找用户、数据库、您自己的代码、ldap(和 Activity 目录)。

第二个问题。 Spring Security 处理角色非常好。我总是让我的 Intranet 应用程序依赖于我的应用程序通过 LDAP 从 AD 获取的角色。控制用户访问功能所需的角色非常容易。有点像这样:

@Secured("ROLE_ADMIN")

第三个问题。这取决于您的 Restful 服务框架,但很可能,是的,同样适用。

关于java - 基于 SOAP 的 Web 服务中的身份验证和角色 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207739/

相关文章:

php - Web 服务和 MySQL 的最佳优化技巧

java - jSTL条件运算符语法

java - Netty ServerSocket 和子进程正常关闭

java - 如何在Java中为框架设置图标?

java - 如何显示启动画面,在后台加载数据,然后隐藏启动画面?

java - 使用 Java 构建 JSON 会覆盖值

java - 使 WSDL 文件保持最新

java - 使用 Spring Security 在运行时切换身份验证方法?

java - request.getSession().getId() 与 request.getRequestedSessionId()

Java - 这是一个成语还是模式,没有状态的行为类