Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Jersey中保护RESTAPI_Java_Rest_Security_Jersey_Jetty - Fatal编程技术网

Java 如何在Jersey中保护RESTAPI

Java 如何在Jersey中保护RESTAPI,java,rest,security,jersey,jetty,Java,Rest,Security,Jersey,Jetty,我有一个Java应用程序,它使用Jetty库来处理websocket连接。我使用Jersey-Jax-RS在这个应用程序中支持restapi 我有两套REST api: 1.供客户访问 2.由我的系统管理员访问以进行诊断(内部) 为了保护1,我使用Oauth身份验证。对于2,我不能使用Oauth或基本身份验证。 但是我希望基于角色(安全领域)或类似的东西来保护api,以便只有已知用户才能访问这些api 实现这种安全性的可能方式有哪些 注意:该应用程序不是web应用程序,因此没有web.xml、j

我有一个Java应用程序,它使用
Jetty
库来处理websocket连接。我使用
Jersey-Jax-RS
在这个应用程序中支持restapi

我有两套REST api:
1.供客户访问
2.由我的系统管理员访问以进行诊断(内部)

为了保护1,我使用Oauth身份验证。对于2,我不能使用Oauth或基本身份验证。
但是我希望基于角色(安全领域)或类似的东西来保护api,以便只有已知用户才能访问这些api

实现这种安全性的可能方式有哪些


注意:该应用程序不是web应用程序,因此没有web.xml、jetty.xml等。

对于投票结束的人,这个问题并不含糊。问题是如何在非web rest应用程序中实现安全性。我对您的术语感到困惑。这是一个web应用程序,它只是运行一个嵌入式jetty,而不是依赖servlet容器?无论如何您可以像保护外部资源一样保护内部资源。你能出示你的密码吗?例如,Jersey有一个名为:RoleSalowedDynamicFeature的特性,它允许您使用roles@pandaadb使用Oauth对外部资源进行身份验证,这涉及前端应用程序上载证书和令牌服务以提供令牌等,但我们不能使用其中任何一个来保护内部资源,因为它仅在应用程序中使用。应用程序也没有支持基本身份验证的信息。我想角色需要在servlet容器中定义安全域。在嵌入式码头的情况下如何可能?我认为这是一个2个问题。首先,您如何在jersey上实现安全性,其次,您如何实现实际的安全规则。我可以给你一个关于如何在jersey上实现这一点的提示,但我不知道你的安全规则(例如,谁有哪些角色)来自哪里。如果没有在内部请求中传递身份验证,如何确定哪些角色属于该请求?另外,当在应用程序中说,您是否从您的码头向同一码头发出rest请求?您可以为自己创建的内部应用程序使用共享机密之类的东西。我如何为自己的内部用户创建共享机密?我想这应该是我可以用的东西。