在 J2EE 应用程序中,我们在 weblogic 中使用 EJB2。
为了避免浪费时间构建初始上下文和查找 EJB Home 接口,我正在考虑服务定位器模式。
但在网络上进行了一些搜索后,我发现即使这种模式经常被推荐用于 InitialContext 缓存,但对于 EJB Home 缓存也存在一些负面意见。
问题:
我在项目中使用 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)
另外,该行为似乎可能与 …
我正在为我的一位客户进行“主机标头注入”攻击。问题是,使用 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”。无论如何,有没有办法找出所请求的原始主机是什么。该请求旨在纠正主机内部重定向问题。
我无法维护预定义的主机条目列表,因为该应用程序是由很多租户定制的。
有没有其他方法可以通过更改服务器配置来修复此攻击?
我在使用 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 EE 应用程序从Java 6迁移到Java 8。这意味着编译级别以及从JRE6 上的 Weblogic 11g到JRE8 上的 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) 我的 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) 我有一个服务器,它有自己的weblogic。我用 IntelliJ 开发我的程序。我可以将 intelliJ 连接到 weblogic 服务器,然后从 intelliJ 运行和部署项目(就像我们在本地使用 Tomcat 应用程序服务器并使用 intelliJ 启动/停止它一样)吗?
我们正在尝试将 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目录中的长路径名)
为了使这项工作顺利进行,我们需要做一些特别的事情吗?我会接受以下任何内容:
META-INF/versions/9类META-INF/versions/9使用第三方 .jar 中存在的类。我对涉及每次构建 .war 时手动删除 .war 中的任何内容的答案不感兴趣。另外,我不确定此时是否可以降级到早期版本的第 3 方 .jar。Log4j2,可能可以......但还有其他。
谢谢!
我有一个在 Oracle WebLogic 上运行的应用程序(来自供应商的打包软件)。
有一些操作,如果我尝试它们,我总是会收到以下错误页面:
(WebLogic 桥消息)Web 服务器桥失败:没有可用于连接的后端服务器:10 秒后超时或幂等设置为 OFF 或方法不是幂等。
在我尝试该操作后几乎恰好五分钟,该错误始终出现。
该页面看起来与应用程序逻辑失败时看到的典型错误页面不同。它看起来像是与基础设施(例如,WebLogic 配置)有关。
我正在与软件供应商解决这个问题,但进展并不顺利。
有没有人看到此消息和/或建议一种诊断根本原因的方法?
我正在将一个 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) weblogic ×10
java ×8
jakarta-ee ×3
weblogic12c ×3
deployment ×2
maven ×2
apache2 ×1
ejb ×1
grails ×1
header ×1
host ×1
jar ×1
offloading ×1
spring ×1
ssl ×1
web.xml ×1
weblogic8.x ×1