标签: weblogic

J2EE/EJB + 服务定位器:缓存 EJB Home 查找结果安全吗?

在 J2EE 应用程序中,我们在 weblogic 中使用 EJB2。

为了避免浪费时间构建初始上下文和查找 EJB Home 接口,我正在考虑服务定位器模式

但在网络上进行了一些搜索后,我发现即使这种模式经常被推荐用于 InitialContext 缓存,但对于 EJB Home 缓存也存在一些负面意见。

问题:

  • 缓存 EJB Home 查找结果安全吗?
  • 如果我的一个集群节点不再工作会发生什么?
  • 如果我安装新版本的 EJB 而不刷新服务定位器的缓存,会发生什么情况?

java weblogic service-locator jakarta-ee

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

强制 Grails/Weblogic 仅使用 HTTPS 协议进行重定向

我在项目中使用 Grails (2.2.2),并且我的应用程序发出不需要的 http 重定向而不是 https 重定向。

目前,我们在 Oracle Weblogic 前面有一个 F5 负载均衡器。F5 正在从 Weblogic 卸载我们的 SSL。F5仅接受https请求,Weblogic仅接受http请求。

我的 Grails 项目使用 Spring Security 和 Spring Security CAS 插件。

该问题通常发生在成功登录 CAS 时。Grails 似乎总是发出 HTTP 重定向。

我的 serverURL 指定 HTTPS,就像我的所有 CAS 配置变量一样。喜欢

grails.serverURL = "https://example.com/${appName}"
Run Code Online (Sandbox Code Playgroud)

有没有办法强制 GRAILS/Weblogic 仅发出 https 重定向?

编辑 #1 - 更多信息

我尝试这样做但没有运气:

grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.secureChannel.definition = [
    '/**': 'REQUIRES_SECURE_CHANNEL'
 ]
grails.plugin.springsecurity.portMapper.httpPort = 80
grails.plugin.springsecurity.portMapper.httpsPort = 443
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'WL-Proxy-SSL'
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http'
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'WL-Proxy-SSL'
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https'
Run Code Online (Sandbox Code Playgroud)

另外,该行为似乎可能与 …

ssl grails weblogic spring-security offloading

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

java主机头攻击

我正在为我的一位客户进行“主机标头注入”攻击。问题是,使用 Burp Suite,他们捕获请求并修改 Host 标头,如下所示。该应用程序是 Java Servlet,托管在 apache(Web 服务器)+ weblogic(应用程序服务器)上 原始请求

GET /myContext/testServlet?rq=home&tenId=123456 HTTP/1.1
Host: beta.testinglab.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Run Code Online (Sandbox Code Playgroud)

修改请求

GET /myContext/testServlet?rq=home&tenId=123456 HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Run Code Online (Sandbox Code Playgroud)

在服务器端,即使在修改“主机标头”之后,请求也会提交到“beta.testinglab.com”,当我在服务器上使用时,request.getRequestUrl()它会给我“www.google.com”。无论如何,有没有办法找出所请求的原始主机是什么。该请求旨在纠正主机内部重定向问题。

我无法维护预定义的主机条目列表,因为该应用程序是由很多租户定制的。

有没有其他方法可以通过更改服务器配置来修复此攻击?

java host weblogic header apache2

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

使用 Intellij IDEA 在 weblogic 上将 war 文件部署为 SharedLibrary

我在使用 Intelli-IDEA 将 war 文件作为共享库部署到 Weblogic 中时遇到一个奇怪的问题。

通过使用“共享库”这一表达,我指的是当您尝试使用管理控制台部署 war/jar 文件时 weblogic 使用的共享库的确切概念:

在此输入图像描述

显然我的 war 文件没有问题,当我使用管理控制台或命令行 (weblogic.Deployer) 部署它时,没有问题并且部署成功。

问题是我无法让Intellij-Idea理解将我的 war 文件部署为共享库:

在此输入图像描述

我尝试将 PersonWeb 工件构建为 jar 或 Ear 或...但没有任何进展。当它打包在 war 中时,我可以使用管理控制台或命令行工具 weblogic.Deployer 成功地将其部署为共享库。

使用命令行工具weblogic.Deployer-library参数,您可以将应用程序部署为 weblogic 上的共享库,如下所示:

java weblogic.Deployer -adminurl t3://localhost:7001 -username [Your username] -password [Your password] -upload -library -targets AdminServer -deploy -source [path to your war file]
Run Code Online (Sandbox Code Playgroud)

但我在 intellij 中找不到任何选项来在部署工件时将参数或参数传递给 weblogic.Deployer 。

有没有任何解决方法可以使用 Intellij-Idea 来实现这一点?

我目前正在使用 weblogic12c。但使用 weblogic 11g(10.3.4 或 10.3.5)会出现同样的问题

java deployment weblogic intellij-idea jakarta-ee

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

Weblogic:Java 8 迁移后 AppMerge 无法合并您的应用程序

我们正在将 Java EE 应用程序从Java 6迁移到Java 8。这意味着编译级别以及从JRE6 上的 Weblogic 11gJRE8 上的 Weblogic 12c 的迁移。

当我尝试部署项目时,出现以下错误

<20.7.2017, 12:48:46,17 ip. EEST> <Error> <J2EE> <BEA-160228> <AppMerge failed to merge your application. If you are running AppMerge on the command-line, merge again with the -verbose option for more details. See the error message(s) below.> 
weblogic.utils.compiler.ToolFailureException: org.apache.commons.pool2.BasePooledObjectFactory
    at weblogic.application.compiler.FlowDriver.handleStateChangeException(FlowDriver.java:55)
    at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:38)
    at weblogic.application.compiler.AppMerge.runBody(AppMerge.java:146)
    at weblogic.utils.compiler.Tool.run(Tool.java:159)
    at weblogic.utils.compiler.Tool.run(Tool.java:116)
    at weblogic.application.compiler.AppMerge.merge(AppMerge.java:158)
    at weblogic.deploy.api.internal.utils.AppMerger.merge(AppMerger.java:94)
    at weblogic.deploy.api.internal.utils.AppMerger.getMergedApp(AppMerger.java:58)
    at weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createDeployableObject(WebLogicDeployableObjectFactoryImpl.java:186)
    at weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createLazyDeployableObject(WebLogicDeployableObjectFactoryImpl.java:160)
    at …
Run Code Online (Sandbox Code Playgroud)

java deployment web.xml weblogic jakarta-ee

5
推荐指数
0
解决办法
6474
查看次数

Spring 应用程序部署在 Weblogic 12c 上失败

我的 Spring 应用程序在 Weblogic 11g 上部署得很好。然而,当我尝试在 Weblogic 12c 上部署时,我不断收到ClassNotFoundException一个又一个的 。

首先,我得到了java.lang.ClassNotFoundException: com.querydsl.core.types.Expression,我通过添加缺少的依赖项解决了这个问题。然后我得到熟悉的异常,但这次缺少的类来自 package com.mysema.querydsl。引入此依赖项后,我得到以下异常:java.lang.ClassNotFoundException: org.apache.abdera.writer.Writer

为什么应用程序在迁移到 Weblogic 12c 后完全崩溃了(因为 Spring 不应该与容器耦合)?

以下是迁移前项目的所有依赖:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring.version>4.3.2.RELEASE</spring.version>
    <spring-data-jpa.version>1.10.2.RELEASE</spring-data-jpa.version>
    <spring-security.version>4.1.3.RELEASE</spring-security.version>
    <cxf.version>3.1.7</cxf.version>
    <jackson.version>1.9.13</jackson.version>
    <esapi.version>2.1.0.1</esapi.version>
    <hibernate-entitymanager.version>5.1.1.Final</hibernate-entitymanager.version>
    <hibernate-commons-annotations.version>5.0.1.Final</hibernate-commons-annotations.version>
    <spring-boot-starter-jdbc.version>1.5.2.RELEASE</spring-boot-starter-jdbc.version>
    <slf4j.version>1.7.21</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <log.directory>logs</log.directory>
</properties>

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>3.0-alpha-1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- Security -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-acl</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <dependency> …
Run Code Online (Sandbox Code Playgroud)

java spring weblogic jar maven

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

将 IntelliJ 连接到 weblogic 服务器

我有一个服务器,它有自己的weblogic。我用 IntelliJ 开发我的程序。我可以将 intelliJ 连接到 weblogic 服务器,然后从 intelliJ 运行和部署项目(就像我们在本地使用 Tomcat 应用程序服务器并使用 intelliJ 启动/停止它一样)吗?

java weblogic intellij-idea

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

在 Oracle WebLogic Server 上部署多个版本 .jar

我们正在尝试将 Web 服务(.war 文件)部署到 Oracle WebLogic 12.2.1.0.0 服务器上。

例如,.war 包含一些第三方 .jar,log4j-api-2.12.0.jar它们是多个版本的 .jar(根据 JEP 238,包含Multi-Release: true在 MANIFEST.MF 中)。

因此,它在META-INF/versions/9目录中包含一些 Java 9 编译的类。WebLogic 12.2 仅使用 Java 8(通过 WebLogic 管理控制台确认版本为 Java 1.8.0_92)。

据我了解,Java 8 服务器应该不会看到/忽略META-INF/versions目录下的任何类,但这似乎并没有发生。看起来 Oracle WLS 只是扫描整个 .war。

结果,当我们尝试部署 .war 时,我们会收到如下错误:

BEA-160248 无法解析类文件:...(然后是META-INF/versions/9目录中的长路径名)

为了使这项工作顺利进行,我们需要做一些特别的事情吗?我会接受以下任何内容:

  • 以某种方式配置 WLS 以忽略这些META-INF/versions/9
  • 配置 Maven 以某种方式构建 .war,而不META-INF/versions/9使用第三方 .jar 中存在的类。

我对涉及每次构建 .war 时手动删除 .war 中的任何内容的答案不感兴趣。另外,我不确定此时是否可以降级到早期版本的第 3 方 .jar。Log4j2,可能可以......但还有其他。

谢谢!

java weblogic maven weblogic12c multi-release-jar

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

WebLogic 桥消息:“Web 服务器桥失败:没有可用于连接的后端服务器...”

我有一个在 Oracle WebLogic 上运行的应用程序(来自供应商的打包软件)。

有一些操作,如果我尝试它们,我总是会收到以下错误页面:

(WebLogic 桥消息)Web 服务器桥失败:没有可用于连接的后端服务器:10 秒后超时或幂等设置为 OFF 或方法不是幂等。

在我尝试该操作后几乎恰好五分钟,该错误始终出现。

该页面看起来与应用程序逻辑失败时看到的典型错误页面不同。它看起来像是与基础设施(例如,WebLogic 配置)有关。

我正在与软件供应商解决这个问题,但进展并不顺利。

有没有人看到此消息和/或建议一种诊断根本原因的方法?

configuration weblogic weblogic12c

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

无法调用注释处理器 - 在 Weblogic 12.2.1.2.0 中部署时

我正在将一个 java 项目从 weblogic 8.1 迁移到 weblogic 12c。

根据oracle文档,我已经转换了以下内容。

 1. Servicegen converted to jwsc task
 2. deployment descriptor has been modified
 3. Below annotations added in service implementation file

  @WebService
  @SoapBinding
  @SoapMessageHandler
Run Code Online (Sandbox Code Playgroud)

在所有上述更改确实生成了war文件并部署在weblogic 12c服务器中之后,它会抛出如下错误

Unable to invoke annotation processor

<BEA-160228> App merge failed your application
weblogic.utils.compiler.ToolFailureException: unable to invoke annotation processor
Run Code Online (Sandbox Code Playgroud)

代码 :

package com.tutorialspoint.stateless;

import com.tutorialspoint.entity.Book;
import java.util.List;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
@WebService(serviceName="LibraryService")
public class LibraryPersistentBean implements LibraryPersistentBeanRemote {
    
   public LibraryPersistentBean() { …
Run Code Online (Sandbox Code Playgroud)

java ejb weblogic weblogic8.x weblogic12c

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