小编cas*_*lin的帖子

HTTP状态码4xx与5xx

我正在创建一个REST API,并且发现在某些情况下很难选择正确的HTTP状态代码.

假设我期望某个值,当它不存在时,我无法执行某个任务并返回错误.由于缺少值,服务器无法处理请求,但是发送它的客户端,状态良好但不完整.是否最好返回错误4xx5xx错误?

http http-status-codes

4
推荐指数
1
解决办法
4345
查看次数

使用SAML和ADFS为单点登录创建Java EE应用程序

我将使用ADFS作为身份提供程序(IDP)来实现对Java应用程序的单一登录。通过OneLogin找到了此解决方案SSO,并试用了其示例应用程序。除此之外,还有Shibboleth的另一种解决方案。

我想知道什么是最适合我的情况的解决方案。两者之间,这不是Spring应用程序。

谢谢

saml java-ee single-sign-on

4
推荐指数
1
解决办法
3855
查看次数

JAX-RS Web服务在GlassFish Server 4.0上有效,但在Tomcat上无效

我是Web服务的新手。因此,我从一个如下的小程序开始。

它可以在GlassFish服务器中正常运行,但不能在Tomcat中运行(我想在Tomcat上运行)。这是一个简单的程序,仅给出如何运行Web服务应用程序的想法。

FirstRestService.java:

package com.sandy.demo;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/resources")
public class FirstRestService extends Application {

}
Run Code Online (Sandbox Code Playgroud)

员工.java:

package com.sandy.demo;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/employees")
public class Employees {

    @GET
    public String getEmployeesNames() {
        return "Hello World";
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经包含了jsr311-api-1.1.1.jar(JAX-RS API JAR文件)。

我获取了该应用程序的有效WAR文件,并将其部署在GlassFish Server中。然后,我使用URL运行服务器:http://localhost:8080/MyFirstRestApplication/resources/employees

但是我无法在Tomcat中执行相同的操作。

java api web-services jax-rs restful-architecture

3
推荐指数
1
解决办法
1335
查看次数

如何解决此代码中的ArrayIndexOutOfBoundsException?

我正在开发一个简单易用的程序,使用for循环和while循环,并且ArrayIndexOutOfBoundsException发生了.

这是我的代码:

public class ForWhileLoops
{
   public static void main(String[] args)
   {
     int[] mary = new int[30];

     for(int a = 0; a < 31; a++)
     {
      mary[a]= a*3;
     }
     for(int b = 0; b < 31; b++)
     {
       System.out.println(mary);
     }
     int c = 0;
     while(c < 31)
     {
       c++;
       System.out.println(c);
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是发生的错误:

java.lang.ArrayIndexOutOfBoundsException: 30
    at ForWhileLoops.main(ForWhileLoops.java:9)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Run Code Online (Sandbox Code Playgroud)

java arrays for-loop while-loop

3
推荐指数
2
解决办法
660
查看次数

从哪里获得 Swagger 的 Bootstrap servlet?

我正在关注这个文档,它给出了以下示例:

<servlet>
    <servlet-name>SwaggerBootstrap</servlet-name>
    <servlet-class>io.swagger.api.util.Bootstrap</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)

但是,我找不到在哪里io.swagger.api.util.Bootstrap上课。

我在 Swagger GitHub 存储库中看不到这个,也找不到任何带有这个的 Maven 模块。

我在哪里可以找到这个?

java servlets swagger

3
推荐指数
1
解决办法
3225
查看次数

REST API中基于令牌的身份验证

我尝试实现基于令牌的身份验证方法:

  1. 每次成功登录都会创建新令牌.

  2. 如果用户选择"保持登录状态"或用户正在使用移动设备,则令牌将保留在Redis数据库中,而不会过期.否则,令牌将在20分钟后到期.

  3. 对用户进行身份验证后,将从Redis数据库中的每个后续请求中检查令牌.

我想知道如何识别设备.对于移动设备,我可以使用设备标识符.但是如何识别浏览器呢?

示例:用户使用Chrome登录并选择"保持登录状态".使用Redis中的浏览器名称生成并保留令牌.如果用户从Firefox登录,则将令牌和"Firefox"保存在数据库中.我在Redis中保存令牌,而在成功验证时创建令牌.是否可以仅使用令牌和使用令牌的浏览器?或者我是否还需要持久保存IP?

其他问题:如何避免攻击者从cookie中窃取令牌?

security rest spring spring-security resteasy

3
推荐指数
1
解决办法
8846
查看次数

如何使用javax.ws.rs执行输入验证?

我正在使用实现REST API javax.ws.rs.实现目标是尽可能安全,因此应验证每个输入.

对于输入验证,我实现一个公共类ValidatingHttpRequest实现HttpServletRequest.

我可以识别出11个甚至被调用的方法,现在所有其他方法都会抛出UnsupportedOperationException.但是,其中一些方法处理REST框架显然使用的内容.例如,我的代码不关心标题,而是getHeaders被调用.通过大量的逆向工程,我将能够找出使用的标头,并且应该进行验证,当然我可以进行验证.可能会引入非最佳行为,也可能是一些错误.并且HTTP请求有一些类似的方面.

但是之前没有人这样做过,可能有人真正了解REST框架是如何工作的?或者是不必要的,因为框架本身不能被愚弄?

所以我正在寻找一个完全验证的HttpServletRequest实现,或者说是为什么在这种情况下没有必要.当然,我将使用实现验证请求正文和参数.

java validation web-services jax-rs

3
推荐指数
1
解决办法
5055
查看次数

Instance#get() 是否为 CDI 中的 @ApplicationScoped beans 返回相同的实例?

如果@ApplicationScoped通过 获取 bean Instance<T>#get(),后续调用是否会get()重用同一实例(我确信ProxyObject使用了相同的实例)?

java cdi

3
推荐指数
1
解决办法
690
查看次数

HTTP标头允许客户端选择JWT算法

我有一个为用户生成令牌的资源.我想添加可能性选择令牌生成算法.

我无法更改请求结构,但可以添加一些带有算法名称的HTTP标头.我的问题是选择什么标题?请问Accept是否可以接受?

我目前使用Accept-Token-Algorithm标头发送像RS256和的值HS256.

http jwt

3
推荐指数
1
解决办法
165
查看次数

Kubernetes:试运行请求的用途是什么?

在阅读Kubernetes 文档的API 概念页面时,我对给定的定义有点困惑:

在版本 1.12 中,如果启用了试运行 alpha 功能,则修饰动词(POST、PUT、PATCH 和 DELETE)可以在试运行模式下接受请求。试运行模式有助于通过典型的请求阶段(准入链、验证、合并冲突)评估请求,直到将对象持久保存到存储中。请求的响应正文尽可能接近非空运行响应。系统保证试运行请求不会持久存储或产生任何其他副作用。

因此,从客户端的角度来看,试运行请求应该具有尽可能相同的行为。

这个概念背后的主要思想是什么?它涵盖哪些用例?

rest kubernetes

3
推荐指数
1
解决办法
4176
查看次数