有没有办法只允许POST请求到j_security_check?我想拒绝GET.我正在使用基于表单的安全性,并希望只允许帖子到j_security_check.如果通过GET发出登录请求,则应拒绝该请求.
我想在weblogic集群中设置一些每节点配置,并且需要从Java访问节点名称.
我正在生产系统上运行Weblogic 8.1 SP6服务器(JDK 1.4.2).现在,在服务器出现故障之前,我们在生产服务器上获得以下异常.我对如何解决这个问题绝对没有任何线索.
java.lang.NullPointerException
at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:205)
at com.sampleapp.arch.struts.InitializingRequestProcessor.getProcessorForModule(InitializingRequestProcessor.java:135)
at com.sampleapp.arch.struts.InitializingRequestProcessor.initializeFormBean(InitializingRequestProcessor.java:29)
at com.sampleapp.arch.struts.ResettingDynaValidatorForm.reset(ResettingDynaValidatorForm.java:46)
at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:484)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
at org.apache.strutsel.taglib.html.ELFormTag.doStartTag(ELFormTag.java:267)
at jsp_servlet._util.__settingsdisplay_f._jspService(__settingsdisplay_f.java:355)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
Run Code Online (Sandbox Code Playgroud)
下面给出了InitializingRequestProcessor的代码片段,并在return语句中抛出NullPointerException.
请询问您是否还需要其他信息.提前致谢.
private static RequestProcessor getProcessorForModule(ActionServlet servlet, ModuleConfig config) {
String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix();
return (RequestProcessor) servlet.getServletContext().getAttribute(key);
}
Run Code Online (Sandbox Code Playgroud)
更新
根据Alex的响应,事实证明ResettingDynaValidatorForm(DynaValidatorForm的自定义实现)从Struts的ActionForm类获取超级ActionServlet,返回NULL值.
有没有理由说服务器只在运行几天后才开始为ActionServlet返回NULL值?
有不同的服务器特定的JavaEE API实现,如:glassfish-javaee或jboss-javaee.
它们作为单独的.jar文件分发,可以使用Maven依赖项附加到某个项目.
是否有类似于WebLogic AS专门设计的内容?
我希望weblogic.jar文件包含重新加工的工件,但它看起来不像这样.
有任何想法吗?
如何配置WebLogic 8.1以在我的开发计算机上使用特定的JRE/JDK.我意识到它正在使用热点,我想将其更改为在JRockit上运行.
我有一个内置ejb模块的EAR应用程序和SomeService:
some-ear.ear -> some-ejb.jar -> SomeBean implements ISomeBean
Run Code Online (Sandbox Code Playgroud)
在Java EE规范中,我看到这个bean的JNDI名称应该是
java:comp/env/ISomeService
Run Code Online (Sandbox Code Playgroud)
当我部署我的应用程序上的WebLogic 10.3 ,然后new InitialContext().lookup("java:comp/env/ISomeService");运行良好
现在我在JBoss 4.2.3上部署这个应用程序,我在日志中看到以下内容:
DEBUG [org.jboss.ejb3.stateless.BaseStatelessProxyFactory] Binding proxy for SomeBean in JNDI at some-ear/SomeBean/local
Run Code Online (Sandbox Code Playgroud)
我的天啊!我的bean的JNDI名称是- some-ear/SomeBean/local并且
new InitialContext().lookup("java:comp/env/ISomeService");- 不工作
new InitialContext().lookup("some-ear/SomeBean/local");- 效果很好
现在我在GlassFish 3.1上部署我的应用程序,我在日志中看到以下内容:
Portable JNDI names for EJB SomeBean : [java:global/some-ear/some-jar/SomeBean ...
Run Code Online (Sandbox Code Playgroud)
再次新的JNDI名称!
new InitialContext().lookup("java:global/some-ear/some-jar/SomeBean"); - 效果很好
你能解释一下为什么在不同的AS上存在同一个bean的不同JNDI名称,以及为什么这个JNDI名称与Java EE规范不同?
我在Mac机器上运行Weblogic 10.3的托管实例。有一天,我尝试启动它,并收到此错误消息
<Jun 2, 2013 5:19:34 PM EDT> <Notice> <LoggingService> <BEA-320400> <The log file /Users/xx/bfdev/bea10/user_projects/domains/xx/servers/admin/logs/xx.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.>
<Jun 2, 2013 5:19:34 PM EDT> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to /Users/xx/bfdev/bea10/user_projects/domains/xx/servers/admin/logs/xx.log00101. Log messages will continue to be logged in /Users/xx/bfdev/bea10/user_projects/domains/xx/servers/admin/logs/benefitfocusDomain.log.>
<Jun 2, 2013 5:19:34 PM EDT> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic …Run Code Online (Sandbox Code Playgroud) 我有2个应用程序运行良好,除了1个功能的生产环境.此功能是简单表格中的excel生成.在我所有的其他环境中,excel的生成是可以的,但是当我尝试在生产环境中使用它时.我的日志中出现此错误,并且在我的应用程序中出现了错误500!
2014-04-29 09:27:05,690 [[ACTIVE] ExecuteThread:'4'表示队列:'weblogic.kernel.Default(self-tuning)'] ERROR com.btoc.reporting .web.misc.MiscServletFilter - 处理错误请求org.springframework.web.util.NestedServletException:处理程序处理失败; 嵌套异常是java.lang.InternalError:不能使用'localhost:10.0'作为DISPLAY变量的值连接到X11窗口服务器.在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:949)在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)在org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:882)org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707)的javax.servlet.http. HttpServlet.service(HttpServlet.java:820)位于weblogic.servlet上的weblogic.servial.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:227)中的weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) .internal.ServletStubImpl.execute(ServletStubImpl.java:300)在weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)在weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:523)在weblogic的. servlet.internal.RequestDispatcherImpl.forward(要求 uestDispatcherImpl.java:253)org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)at org .tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)at org.tuckey.web.filters.urlrewrite .UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417)在weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)在com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:65)在weblogic的. servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)147)在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)在weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java: 56)在org.springfram的org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:311)ework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116))org.springframework.security.web上的org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)位于org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter)的org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)中的.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)的.java:101)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)AVA:113)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323 )ort.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)eRequestFilter.java:54)org.springframework.security.web.FilterChainProxy $ VirtualFilterChain的ationFilter.java:139).doFilter(FilterChainProxy.java:323)在org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323 )ProcessingFilter.java:182)org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) )org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)va:87)org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)at org. springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
我可以遵循任何线索?我已经比较了我所有的java版本.就像我使用weblogic服务器一样,我所有的java版本都是一样的.
我正在使用(对于excel一代)来自apache的API :
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.7</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Web应用程序中实现身份验证机制,我正在WebLogic 12c实例上进行部署.我想限制只有经过身份验证的用户访问某些页面.
我的问题在于弄清楚如何定义我的安全部分的auth-constraint来执行此操作.这是我的web.xml的安全部分:
<security-constraint>
<web-resource-collection>
<web-resource-name>secure</web-resource-name>
<url-pattern>/secure/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>Any User</description>
<role-name>user</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/auth_error.html</form-error-page>
</form-login-config>
</login-config>
Run Code Online (Sandbox Code Playgroud)
现在,身份验证工作正常,但是当我尝试访问任何安全页面时,我得到403 - Forbidden,我很确定这是因为我没有任何用户映射到"用户"角色.我已经尝试为角色名称指定通配符(*),但这不起作用.
我宁愿不必在WebLogic端配置任何映射.WebLogic文档指定有一个特殊的"经过身份验证的角色"会自动提供给任何进行身份验证的用户(请参阅http://docs.oracle.com/cd/E14571_01/core.1111/e10043/introroles.htm#CJAGGDCA)
该文档适用于11g - 与12c中的角色相同吗?如果是这样,我可以在我的web.xml中引用它来授予任何经过身份验证的用户的访问权限吗?它的角色名称是什么?
通过WebLogic管理控制台停止/启动部署时,有时会出现以下错误:
Unable to access application source information in '/opt/product/oracle/local/managedservers/mydomain/servers/serverA/stage/apputil/apputil.war'
for application 'apputil’.
The specific error is: [Deployer:149158] No application files
exist at '/opt/product/oracle/local/managedservers/mydomain/servers/serverA/stage/apputil/apputil.war'
Run Code Online (Sandbox Code Playgroud)
但是,如果停止并启动受管服务器,则部署似乎会恢复。
我的问题是,为什么这些war文件在服务器运行时似乎随机地从托管服务器中消失了? 这通常是在我们有一段时间(6个月)没有接触过部署之后发生的。那里有用于其他部署的其他战争文件。在我们尝试停止/启动应用程序之前,它不会影响应用程序的运行。
这就是文件系统之前和之后的样子。
[oracle@serverA stage]$ pwd;ls -alstr
/opt/product/oracle/local/managedservers/mydomain/servers/serverA/stage
total 20
4 drwxr-x--- 8 oracle dba 4096 Mar 19 2014 ..
4 drwxr----- 3 oracle dba 4096 Mar 19 2014 app-crypto-util
4 drwxr----- 2 oracle dba 4096 Mar 19 2014 appadmin
4 drwxr----- 2 oracle dba 4096 Mar 19 2014 appsm
4 drwxr----- 5 oracle dba …Run Code Online (Sandbox Code Playgroud)