休息完整申请的范围是什么。实际上我想创建一个Login模块,这样只有在认证成功后才能访问下一个web服务。
答案 0 :(得分:0)
以下是如何为Java Web应用程序使用声明容器托管安全性的示例:
添加约束力以强制使用HTTPS
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL Secured WebService</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
阻止非管理用户插入,更新和删除位于以下位置的资源:/services/products/*
<security-constraint>
<web-resource-collection>
<web-resource-name>Authenticated administrators only</web-resource-name>
<url-pattern>/services/products/*</url-pattern>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>ADMIN</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
强制执行基本身份验证
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>BookStore-Authentication-REALM</realm-name>
</login-config>
定义安全角色ADMIN
<security-role>
<role-name>ADMIN</role-name>
</security-role>
您还需要创建一个自定义数据库领域,它知道所有用户和密码在数据库中的位置。此Realm需要映射到此应用程序。每个应用程序服务器都可以使用它自己的shema来完成这个。下面是JBoss AS 7.1的一个例子
在WEB-INF
文件夹中创建一个jboss-web.xml文件,其中包含以下内容。
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<security-domain>RealmName</security-domain>
</jboss>
这种延迟安全性可能无法满足您的所有限制要求,因为<ulr-patter>
表达式的使用非常有限。在这种情况下,您可能需要使用编程安全性。有关详细信息,请查看Oracle's documentation site
答案 1 :(得分:0)
这里是...... JAX-RS根资源类在请求范围内进行管理。 因此,默认请求作用域,并且不需要注释来指定范围。任何方式,CDI(上下文或二进制注入)托管bean注释为 @RequestScoped或@ApplicationScoped可以转换为JAX-RS资源类。