`
komei
  • 浏览: 89105 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2.0+spring2.0+hibernate3.1 ACEGI应用示例(权限判断)

阅读更多

首先对先前的那个应用进行了完善,主要针对中文问题,查询后的记录的修改删除问题进行了完善。功能基本可以说已经比较完善了。尽管代码不是很好看。

这次添加了权限管理的功能,应用的是acegi来进行的权限管理。Acegi继承了spring的特点,无侵入性,利用aop来实现了权限管理。

权限管理主要形式是用户角色权限这种模式。因为是简单应用,我于是使用了用户权限的模式,省去了角色,少了两张表。

<o:p> </o:p>

users

<o:p> </o:p>

authorities

<o:p> </o:p>

user_auth

<o:p> </o:p>

<o:p> </o:p>

在程序中相应的增加了对应表的POJO类。在commons包中增加了DataSourceMethodDefinitionSourceEditor.java类。

<o:p> </o:p>

在根目录增加了accessDenied.jsplogin.jsp页面。

修改了web.xmlapplicationContext.xml.

<o:p> </o:p>

spring-context文件夹中增加了最关键的applicationContext-security-acegi.xml

<o:p> </o:p>

applicationContext-security-acegi.xml配置文件,我将会写一篇文章进行介绍,并说说自己使用时出现的问题,以及需要注意的地方。

<o:p> </o:p>

附件下载


相关信息:
struts2.0+spring2.0+hibernate3.1 web应用 示例代码下载

项目架构以及数据库信息
struts+spring+hibernate的web应用<一> 架构搭建

更多信息





千山鸟飞绝 2007-04-24 10:12 发表评论
分享到:
评论
1 楼 weiny517 2007-09-13  
你的代码我部属到tomcat6后,提示下列信息,请帮我看看吧
2007-9-13 17:22:45 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_02\bin;D:\Tomcat 6.0\bin
2007-9-13 17:22:45 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2007-9-13 17:22:45 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1108 ms
2007-9-13 17:22:46 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2007-9-13 17:22:46 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.14
INFO - Root WebApplicationContext: initialization started
2007-9-13 17:22:50 org.apache.catalina.core.ApplicationContext log
信息: Loading Spring root WebApplicationContext
INFO - JDK 1.4+ collections available
INFO - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-context/applicationContext.xml]
INFO - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-context/applicationContext-security-acegi.xml]
INFO - Bean factory for application context [Root WebApplicationContext]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,transactionManager,jdbcTemplate,customEditorConfigurer,manageSecurity,productsDao,productsService,pagerService,productAction,filterChainProxy,jdbcDaoImpl,authenticationManager,anonymousAuthenticationProvider,daoAuthenticationProvider,userCache,userCacheBackend,cacheManager,httpSessionContextIntegrationFilter,rememberMeProcessingFilter,rememberMeServices,rememberMeAuthenticationProvider,logoutFilter,authenticationProcessingFilter,anonymousProcessingFilter,securityContextHolderAwareRequestFilter,filterInvocationInterceptor,httpRequestAccessDecisionManager,roleVoter,exceptionTranslationFilter]; root of BeanFactory hierarchy
INFO - 30 beans defined in application context [Root WebApplicationContext]
INFO - Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@1dc0e7a]
INFO - Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@173ec72]
INFO - Unable to locate ThemeSource with name 'themeSource': using default [org.springframework.ui.context.support.ResourceBundleThemeSource@1bbd7b2]
INFO - Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,transactionManager,jdbcTemplate,customEditorConfigurer,manageSecurity,productsDao,productsService,pagerService,productAction,filterChainProxy,jdbcDaoImpl,authenticationManager,anonymousAuthenticationProvider,daoAuthenticationProvider,userCache,userCacheBackend,cacheManager,httpSessionContextIntegrationFilter,rememberMeProcessingFilter,rememberMeServices,rememberMeAuthenticationProvider,logoutFilter,authenticationProcessingFilter,anonymousProcessingFilter,securityContextHolderAwareRequestFilter,filterInvocationInterceptor,httpRequestAccessDecisionManager,roleVoter,exceptionTranslationFilter]; root of BeanFactory hierarchy]
INFO - Hibernate 3.2.2
INFO - hibernate.properties not found
INFO - Bytecode provider name : cglib
INFO - using JDK 1.4 java.sql.Timestamp handling
INFO - configuring from url: file:/D:/Tomcat%206.0/webapps/game/WEB-INF/classes/com/game/bean/hibernate/hibernate.cfg.xml
INFO - Reading mappings from resource : com/game/products/model/products.hbm.xml
INFO - Mapping class: com.game.products.model.Products -> products
INFO - Configured SessionFactory: null
INFO - Building new Hibernate SessionFactory
INFO - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
WARN - SQL Error: 0, SQLState: null
ERROR - Cannot create JDBC driver of class '' for connect URL 'null'
WARN - Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:804)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:744)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1118)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1085)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:429)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:270)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:253)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
... 36 more
INFO - Using dialect: org.hibernate.dialect.SQLServerDialect
INFO - Using default transaction strategy (direct JDBC transactions)
INFO - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
INFO - Automatic flush during beforeCompletion(): disabled
INFO - Automatic session close at end of transaction: disabled
INFO - Scrollable result sets: disabled
INFO - JDBC3 getGeneratedKeys(): disabled
INFO - Connection release mode: on_close
INFO - Default batch fetch size: 1
INFO - Generate SQL with comments: disabled
INFO - Order SQL updates by primary key: disabled
INFO - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
INFO - Using ASTQueryTranslatorFactory
INFO - Query language substitutions: {}
INFO - JPA-QL strict compliance: disabled
INFO - Second-level cache: enabled
INFO - Query cache: disabled
INFO - Cache provider: org.hibernate.cache.NoCacheProvider
INFO - Optimize cache for minimal puts: disabled
INFO - Structured second-level cache entries: disabled
INFO - Echoing all SQL to stdout
INFO - Statistics: disabled
INFO - Deleted entity synthetic identifier rollback: disabled
INFO - Default entity-mode: pojo
INFO - Named query checking : enabled
INFO - building session factory
INFO - Not binding factory to JNDI, no JNDI name configured
INFO - Using DataSource [org.apache.tomcat.dbcp.dbcp.BasicDataSource@15f157b] of Hibernate SessionFactory for HibernateTransactionManager
INFO - Initializing EHCache CacheManager
WARN - No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: jar:file:/D:/Tomcat%206.0/webapps/game/WEB-INF/lib/ehcache-1.2.3.jar!/ehcache-failsafe.xml
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:328)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:403)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:411)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:442)
at com.game.commons.DataSourceMethodDefinitionSourceEditor.setAsText(DataSourceMethodDefinitionSourceEditor.java:46)
at org.springframework.beans.TypeConverterDelegate.convertValue(TypeConverterDelegate.java:268)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:189)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:139)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:772)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:606)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValue(AbstractPropertyAccessor.java:49)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:74)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
at org.springframework.beans.factory.support.AbstractBeanFactory.applyPropertyValues(AbstractBeanFactory.java:836)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1026)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:809)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:253)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
... 45 more
INFO - Validated configuration attributes
INFO - CGLIB2 available: proxyTargetClass feature enabled
INFO - Validated configuration attributes
INFO - Using context class [org.springframework.web.context.support.XmlWebApplicationContext] for root WebApplicationContext
INFO - Root WebApplicationContext: initialization completed in 8482 ms
2007-9-13 17:22:58 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'webapp.root' = [D:\Tomcat 6.0\webapps\game\]
2007-9-13 17:22:58 org.apache.catalina.core.ApplicationContext log
信息: Initializing Log4J from [D:\Tomcat 6.0\webapps\game\WEB-INF\classes\log4j.properties]
INFO - Parsing configuration file [struts-default.xml]
INFO - Parsing configuration file [struts-plugin.xml]
INFO - Parsing configuration file [struts.xml]
WARN - Settings: Could not parse struts.locale setting, substituting default VM locale
INFO - Overriding property struts.i18n.reload - old value: false new value: true
INFO - Overriding property struts.configuration.xml.reload - old value: false new value: true
INFO - Initializing Struts-Spring integration...
INFO - Setting autowire strategy to name
INFO - ... initialized Struts-Spring integration successfully
INFO - Setting DefaultObjectTypeDeterminer as default ...
2007-9-13 17:23:03 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2007-9-13 17:23:03 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2007-9-13 17:23:03 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2007-9-13 17:23:03 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2007-9-13 17:23:03 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/107  config=null
2007-9-13 17:23:03 org.apache.catalina.startup.Catalina start
信息: Server startup in 18093 ms

相关推荐

Global site tag (gtag.js) - Google Analytics