小编My-*_*-Is的帖子

如何在REST服务中验证传入的JSON数据?

休息服务需要根据json模式验证所有传入的json数据.json模式是公共可访问的,可以通过http请求检索.

我正在使用jackson -framwork来编组java和json之间的编组和解组.到目前为止,我找不到任何使用jackson来验证模式数据的可能性.

我还尝试了JsonTools框架,它显然提出了这样的验证功能.但不幸的是,我无法让验证工作.为什么JsonTool架构验证不起作用?

我该怎么做这样的验证?

java validation rest json jsonschema

19
推荐指数
2
解决办法
4万
查看次数

ORA-00955"名称已被现有对象使用"

我需要修改现有的PK.因此我放弃重新创建它.

ALTER TABLE B DROP CONSTRAINT PK_B;
ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP", "NR", "HH", "QUART");
Run Code Online (Sandbox Code Playgroud)

不幸的是,最后一个声明会给我一个错误ORA-00955

如果我创建PK约束,就像它最初定义的那样:

ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP", "NR", "HH");
Run Code Online (Sandbox Code Playgroud)

一切正常.

oracle oracle11g

9
推荐指数
1
解决办法
6万
查看次数

如何通过JAX-RS应用程序中的注释从基于web.xml的授权切换到授权

我有一个工作(基于web.xml)容器身份验证和授权.由于<url-pattern>我需要switch to javax.annotation.security注释的限制.我发现我需要在web.xml中进行额外配置才能打开基于角色的安全注释.在RESTEasy UserGuide中描述

但这对我不起作用:我得到一个错误404(无法找到相对的资源:/ services/customers/1)取决于是否

<servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Resteasy</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

在web.xml中定义,或者在<context-param>和之后定义<listener>

这是我的旧(现有)web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

    <display-name>Store_Service</display-name>

    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>

    <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>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Authenticated customers only</web-resource-name>
            <url-pattern>/services/customers/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>CUST</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>Authentication-REALM</realm-name>
    </login-config>

    <security-role>
        <role-name>CUST</role-name>
    </security-role>

    <security-role>
        <role-name>ADMIN</role-name>
    </security-role>

    <welcome-file-list>
        <welcome-file>/index.xhtml</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name> …
Run Code Online (Sandbox Code Playgroud)

java security jboss authorization resteasy

8
推荐指数
1
解决办法
3162
查看次数

是否有String.format(...)的类型安全替代品

对于编写错误,记录或任何其他String消息,String.format(...)可以使用该方法.不幸的是,这种方法不是类型安全的,因此下面的源会抛出一个IllegalFormatException

String s = String.format("My message has %d characters !", "30");
Run Code Online (Sandbox Code Playgroud)

除了StringBuilder课程之外,还有其他任何组合此类消息的方法.

我的个人意见是使用StringBuilder实例更难以阅读撰写的消息.

java string

7
推荐指数
1
解决办法
921
查看次数

javax.crypto.Cipher为RSA使用了哪个填充

我需要通过RSA解密消息,以便通过不安全的通道发送消息,但我害怕Padding Oracle Attack.因此我已经问过以下问题:

  1. 如何验证RSA加密消息的完整性?
  2. 如何使用javax.crypto.Cipher确保RSA密码的消息完整性

像第一个问题中建议的那样,

但是,由于您使用的是高级加密库,因此您不必担心这一点.该图书馆的作者应该照顾它.

我不应该考虑.据我所知,RSA执行的PKCS#1 v1.5是脆弱的Padding Oracale Attack,其中原和不(假设它的正确实施)

因此,我想知道javax.crypt.CipherJava 7 使用哪种填充实现

java security cryptography rsa padding-oracle-attack

7
推荐指数
2
解决办法
1万
查看次数

如何从没有id的表中删除重复(重复)记录,行

我研究过它,我找到的最实用的方法是创建一个程序.该过程
添加一个id,删除重复的行,最后将一个id列添加到新形成的表中.我想,必须有一个更简单的方法.这是代码,它有效......

- 我的桌子

create table dublicateTable
(
name varchar(30)
)
Run Code Online (Sandbox Code Playgroud)

- 重复插入行

insert into dublicateTable values('Kerem')
insert into dublicateTable values('Taner')
insert into dublicateTable values('Mehmet')
insert into dublicateTable values('Serhat')
Run Code Online (Sandbox Code Playgroud)

- 第一种情况

select * from dublicateTable


name
-----
Kerem
Kerem
Kerem
Taner
Taner
Mehmet
Mehmet
Mehmet
Mehmet
Serhat
Serhat
Serhat
Run Code Online (Sandbox Code Playgroud)

--dynamicaly形成了sql代码程序

USE [myDataBase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[usp_delete_duplicate]
as
declare 
@add_id_text nvarchar(50),
@delete_id_text nvarchar(50),
@command_text nvarchar(100)
begin
set @add_id_text='alter table dbo.dublicateTable add id int …
Run Code Online (Sandbox Code Playgroud)

sql t-sql database sql-server sql-server-2008

6
推荐指数
1
解决办法
1637
查看次数

java.lang.LinkageError:加载器约束违规:解析方法时"org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor

JSF Web应用程序尝试从Java EE Web服务检索资源.JSF Web应用程序运行正常.自从我将Http客户端源添加到反向Web服务资源以来,JBoss实例声称:

15:29:47,689 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http--0.0.0.0-443-1) Error Rendering View[/index.xhtml]: javax.el.ELException: /surfaceParts/sideBarLeft.xhtml @14,79 value="#{categories.cats}": java.lang.LinkageError: loader constraint violation: when resolving method "org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor.<init>(Lorg/apache/http/client/HttpClient;Lorg/apache/http/protocol/HttpContext;)V" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, at/fhj/ase/ssl/SSLClientHelper, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for resolved class, org/jboss/resteasy/client/core/executors/ApacheHttpClient4Executor, have different Class objects for the type xecutors.ApacheHttpClient4Executor.<init>(Lorg/apache/http/client/HttpClient;Lorg/apache/http/protocol/HttpContext;)V used in the signature
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIData.getValue(UIData.java:731) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIData.getDataModel(UIData.java:1798) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIData.setRowIndex(UIData.java:473) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at …
Run Code Online (Sandbox Code Playgroud)

java jboss jboss7.x apache-httpclient-4.x linkageerror

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

TLS是否确保RESTful Java企业中的数据传输的消息完整性和机密性

我想根据OWASP Web Service Security应用Web服务安全性.因此我偶然发现了两点:

  1. 消息完整性
  2. 消息机密性

到目前为止,只有一个RESTful服务可以由客户端直接访问.对于每个请求,客户端需要由服务器进行身份验证.所有通信都通过TLS保护.我现在不确定,Message Integrity因为我不明白这句话:

使用公钥加密时,加密确实保证机密性,但由于接收方的公钥是公开的,因此无法保证完整性.出于同样的原因,加密不能确保发件人的身份.

是否还要求客户签署数据以确保消息完整性?TLS只是点对点,代理是什么?

关于Message Confidentiality,我理解如下.

  1. 使用TLS确保线路上的消息机密性.
  2. 使用对称加密来加密传输的数据.
  3. 加密数据存储在数据库中.

我明白了吗?

security ssl data-integrity confidentiality

6
推荐指数
2
解决办法
1万
查看次数

如何使用PostgreSQL中的ALTER TABLE将外键约束添加到同一个表

要创建表我使用:

CREATE TABLE category
(
  cat_id serial NOT NULL,
  cat_name character varying NOT NULL,
  parent_id integer NOT NULL,
  CONSTRAINT cat_id PRIMARY KEY (cat_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE category
  OWNER TO pgsql;
Run Code Online (Sandbox Code Playgroud)

parent_id是另一个类别的id.现在我有一个问题:如何与其子级级联删除记录?我需要将parent_id设置为cat_id的外键.我试试这个:

  ALTER TABLE category 
ADD CONSTRAINT cat_cat_id_fkey FOREIGN KEY (parent_id)
      REFERENCES category (cat_id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)

但它落在:

ERROR:  insert or update on table "category" violates foreign key constraint "cat_cat_id_fkey"
DETAIL:  Key (parent_id)=(0) is not present in table "category".
Run Code Online (Sandbox Code Playgroud)

postgresql foreign-keys alter-table

5
推荐指数
1
解决办法
2万
查看次数

ORA-01408:此列列表已编入索引

Oracle SQL-Developer生成已经存在的数据库表(项)的DDL语句.生成的DDL语句无法在新的数据库实例中应用,这很奇怪.这是DDL的简化示例

CREATE TABLE AB
  (
    "A"      NUMBER(*,0),
    "B"   NUMBER(*,0),
    "C" VARCHAR2(255 BYTE),
    CONSTRAINT "CHK_AB_A_NN" CHECK (A       IS NOT NULL) ENABLE,
    CONSTRAINT "CHK_AB_B_NN" CHECK (B       IS NOT NULL) ENABLE,
    CONSTRAINT "PK_AB" PRIMARY KEY ("A", "B")
  );
CREATE INDEX "IDX_AB_A" ON "AB"("A");
CREATE INDEX "IDX_AB_B" ON "AB"("B");
CREATE UNIQUE INDEX "PK_AB" ON "AB"("A", "B");
Run Code Online (Sandbox Code Playgroud)

如果我在新的oracle实例中执行这些语句,我会收到错误:

SQL-Fehler: ORA-01408: Diese Spaltenliste hat bereits einen Index 1. 00000 - "such column list already indexed"

这个错误的原因是什么?

sql oracle oracle-sqldeveloper

5
推荐指数
2
解决办法
2万
查看次数