Guest User

Untitled

a guest
Nov 3rd, 2017
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.41 KB | None | 0 0
  1. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.horariolivre.entity.Usuario.autorizacoes, could not initialize proxy - no Session
  2. at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:566)
  3. at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:186)
  4. at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:545)
  5. at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:124)
  6. at org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.java:266)
  7. at com.horariolivre.security.CustomAuthenticationProvider.authenticate(CustomAuthenticationProvider.java:45)
  8. at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
  9. at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:177)
  10. at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
  11. at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211)
  12. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  13. at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
  14. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  15. at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
  16. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  17. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  18. at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
  19. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  20. at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
  21. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  22. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  23. at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
  24. at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
  25. at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
  26. at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
  27. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  28. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  29. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  30. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  31. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
  32. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
  33. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
  34. at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
  35. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  36. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
  37. at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
  38. at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
  39. at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
  40. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  41. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  42. at java.lang.Thread.run(Thread.java:744)
  43.  
  44. @Component
  45. public class CustomAuthenticationProvider implements AuthenticationProvider {
  46.  
  47. @Autowired
  48. private UsuarioHome usuario;
  49.  
  50. public CustomAuthenticationProvider() {
  51. super();
  52. }
  53.  
  54. @Override
  55. public Authentication authenticate(Authentication authentication) throws AuthenticationException {
  56. System.out.println("CustomAuthenticationProvider.authenticate");
  57.  
  58. String username = authentication.getName();
  59. String password = authentication.getCredentials().toString();
  60.  
  61. Usuario user = usuario.findByUsername(username);
  62.  
  63. if (user != null) {
  64. if(user.getSenha().equals(password)) {
  65. List<AutorizacoesUsuario> list = user.getAutorizacoes();
  66.  
  67. List <String> rolesAsList = new ArrayList<String>();
  68. for(AutorizacoesUsuario role : list){
  69. rolesAsList.add(role.getAutorizacoes().getNome());
  70. }
  71.  
  72. List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
  73. for (String role_name : rolesAsList) {
  74. authorities.add(new SimpleGrantedAuthority(role_name));
  75. }
  76.  
  77. Authentication auth = new UsernamePasswordAuthenticationToken(username, password, authorities);
  78. return auth;
  79. }
  80. else {
  81. return null;
  82. }
  83. } else {
  84. return null;
  85. }
  86. }
  87.  
  88. @Override
  89. public boolean supports(Class<?> authentication) {
  90. return authentication.equals(UsernamePasswordAuthenticationToken.class);
  91. }
  92.  
  93. }
  94.  
  95. @Entity
  96. @Table(name = "usuario")
  97. public class Usuario implements java.io.Serializable {
  98.  
  99. private int id;
  100. private String login;
  101. private String senha;
  102. private String primeiroNome;
  103. private String ultimoNome;
  104. private List<TipoUsuario> tipoUsuarios = new ArrayList<TipoUsuario>();
  105. private List<AutorizacoesUsuario> autorizacoes = new ArrayList<AutorizacoesUsuario>();
  106. private List<DadosUsuario> dadosUsuarios = new ArrayList<DadosUsuario>();
  107. private ConfigHorarioLivre config;
  108.  
  109. public Usuario() {
  110. }
  111.  
  112. public Usuario(String login, String senha) {
  113. this.login = login;
  114. this.senha = senha;
  115. }
  116.  
  117. public Usuario(String login, String senha, String primeiroNome, String ultimoNome, List<TipoUsuario> tipoUsuarios, List<AutorizacoesUsuario> autorizacoesUsuarios, List<DadosUsuario> dadosUsuarios, ConfigHorarioLivre config) {
  118. this.login = login;
  119. this.senha = senha;
  120. this.primeiroNome = primeiroNome;
  121. this.ultimoNome = ultimoNome;
  122. this.tipoUsuarios = tipoUsuarios;
  123. this.autorizacoes = autorizacoesUsuarios;
  124. this.dadosUsuarios = dadosUsuarios;
  125. this.config = config;
  126. }
  127.  
  128. public Usuario(String login, String senha, String primeiroNome, String ultimoNome, String tipoUsuario, String[] campos) {
  129. this.login = login;
  130. this.senha = senha;
  131. this.primeiroNome = primeiroNome;
  132. this.ultimoNome = ultimoNome;
  133. this.tipoUsuarios.add(new TipoUsuario(this, new Tipo(tipoUsuario)));
  134. for(int i=0; i<campos.length; i++)
  135. this.dadosUsuarios.add(new DadosUsuario(this, null, campos[i]));
  136. }
  137.  
  138. @Id
  139. @Column(name = "id", unique = true, nullable = false)
  140. @GeneratedValue(strategy=GenerationType.AUTO)
  141. public int getId() {
  142. return this.id;
  143. }
  144.  
  145. public void setId(int id) {
  146. this.id = id;
  147. }
  148.  
  149. @Column(name = "login", nullable = false, length = 16)
  150. public String getLogin() {
  151. return this.login;
  152. }
  153.  
  154. public void setLogin(String login) {
  155. this.login = login;
  156. }
  157.  
  158. @Column(name = "senha", nullable = false)
  159. public String getSenha() {
  160. return this.senha;
  161. }
  162.  
  163. public void setSenha(String senha) {
  164. this.senha = senha;
  165. }
  166.  
  167. @Column(name = "primeiro_nome", length = 32)
  168. public String getPrimeiroNome() {
  169. return this.primeiroNome;
  170. }
  171.  
  172. public void setPrimeiroNome(String primeiroNome) {
  173. this.primeiroNome = primeiroNome;
  174. }
  175.  
  176. @Column(name = "ultimo_nome", length = 32)
  177. public String getUltimoNome() {
  178. return this.ultimoNome;
  179. }
  180.  
  181. public void setUltimoNome(String ultimoNome) {
  182. this.ultimoNome = ultimoNome;
  183. }
  184.  
  185. @ManyToMany(cascade=CascadeType.ALL)
  186. @JoinTable(name = "tipo_usuario", joinColumns = { @JoinColumn(name = "fk_usuario") }, inverseJoinColumns = { @JoinColumn(name = "fk_tipo") })
  187. @LazyCollection(LazyCollectionOption.TRUE)
  188. public List<TipoUsuario> getTipoUsuarios() {
  189. return this.tipoUsuarios;
  190. }
  191.  
  192. public void setTipoUsuarios(List<TipoUsuario> tipoUsuarios) {
  193. this.tipoUsuarios = tipoUsuarios;
  194. }
  195.  
  196. @ManyToMany(cascade=CascadeType.ALL)
  197. @JoinTable(name = "autorizacoes_usuario", joinColumns = { @JoinColumn(name = "fk_usuario") }, inverseJoinColumns = { @JoinColumn(name = "fk_autorizacoes") })
  198. @LazyCollection(LazyCollectionOption.TRUE)
  199. public List<AutorizacoesUsuario> getAutorizacoes() {
  200. return this.autorizacoes;
  201. }
  202.  
  203. public void setAutorizacoes(List<AutorizacoesUsuario> autorizacoes) {
  204. this.autorizacoes = autorizacoes;
  205. }
  206.  
  207. @ManyToMany(cascade=CascadeType.ALL)
  208. @JoinTable(name = "dados_usuario", joinColumns = { @JoinColumn(name = "fk_usuario") }, inverseJoinColumns = { @JoinColumn(name = "fk_dados") })
  209. @LazyCollection(LazyCollectionOption.TRUE)
  210. public List<DadosUsuario> getDadosUsuarios() {
  211. return this.dadosUsuarios;
  212. }
  213.  
  214. public void setDadosUsuarios(List<DadosUsuario> dadosUsuarios) {
  215. this.dadosUsuarios = dadosUsuarios;
  216. }
  217.  
  218. @OneToOne
  219. @JoinColumn(name="fk_config")
  220. public ConfigHorarioLivre getConfig() {
  221. return config;
  222. }
  223.  
  224. public void setConfig(ConfigHorarioLivre config) {
  225. this.config = config;
  226. }
  227. }
  228.  
  229. @Entity
  230. @Table(name = "autorizacoes_usuario", uniqueConstraints = @UniqueConstraint(columnNames = "id"))
  231. public class AutorizacoesUsuario implements java.io.Serializable {
  232.  
  233. private int id;
  234. private Usuario usuario;
  235. private Autorizacoes autorizacoes;
  236.  
  237. public AutorizacoesUsuario() {
  238. }
  239.  
  240. public AutorizacoesUsuario(Usuario usuario, Autorizacoes autorizacoes) {
  241. this.usuario = usuario;
  242. this.autorizacoes = autorizacoes;
  243. }
  244.  
  245. @Id
  246. @Column(name = "id", unique = true, nullable = false)
  247. @GeneratedValue(strategy=GenerationType.AUTO)
  248. public int getId() {
  249. return this.id;
  250. }
  251.  
  252. public void setId(int id) {
  253. this.id = id;
  254. }
  255.  
  256. @OneToOne
  257. @JoinColumn(name = "fk_usuario", nullable = false, insertable = false, updatable = false)
  258. public Usuario getUsuario() {
  259. return this.usuario;
  260. }
  261.  
  262. public void setUsuario(Usuario usuario) {
  263. this.usuario = usuario;
  264. }
  265.  
  266. @OneToOne
  267. @JoinColumn(name = "fk_autorizacoes", nullable = false, insertable = false, updatable = false)
  268. public Autorizacoes getAutorizacoes() {
  269. return this.autorizacoes;
  270. }
  271.  
  272. public void setAutorizacoes(Autorizacoes autorizacoes) {
  273. this.autorizacoes = autorizacoes;
  274. }
  275.  
  276. }
  277.  
  278. @Entity
  279. @Table(name = "autorizacoes")
  280. public class Autorizacoes implements java.io.Serializable {
  281.  
  282. private int id;
  283. private String nome;
  284. private String descricao;
  285.  
  286. public Autorizacoes() {
  287. }
  288.  
  289. public Autorizacoes(String nome) {
  290. this.nome = nome;
  291. }
  292.  
  293. public Autorizacoes(String nome, String descricao) {
  294. this.nome = nome;
  295. this.descricao = descricao;
  296. }
  297.  
  298. @Id
  299. @Column(name = "id", unique = true, nullable = false)
  300. @GeneratedValue(strategy=GenerationType.AUTO)
  301. public int getId() {
  302. return this.id;
  303. }
  304.  
  305. public void setId(int id) {
  306. this.id = id;
  307. }
  308.  
  309. @Column(name = "nome", nullable = false, length = 16)
  310. public String getNome() {
  311. return this.nome;
  312. }
  313.  
  314. public void setNome(String nome) {
  315. this.nome = nome;
  316. }
  317.  
  318. @Column(name = "descricao", length = 140)
  319. public String getDescricao() {
  320. return this.descricao;
  321. }
  322.  
  323. public void setDescricao(String descricao) {
  324. this.descricao = descricao;
  325. }
  326. }
  327.  
  328. <bean id="transactionManager"
  329. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  330. <property name="sessionFactory" ref="sessionFactory" />
  331. </bean>
  332.  
  333. <tx:annotation-driven />
  334.  
  335. @Transactional
  336. public Authentication authenticate(Authentication authentication)
  337.  
  338. <property name="hibernate.enable_lazy_load_no_trans" value="true" />
  339.  
  340. Hibernate.initialize(ppiDO);
  341. if (ppiDO instanceof HibernateProxy) {
  342. ppiDO = (PolicyProductInsuredDO) ((HibernateProxy) ppiDO).getHibernateLazyInitializer()
  343. .getImplementation();
  344. ppiDO.setParentGuidObj(policyDO.getBasePlan());
  345. saveppiDO.add(ppiDO);
  346. proxyFl = true;
  347. }
  348.  
  349. @JsonManagedReference
  350.  
  351. @ManyToMany(cascade=CascadeType.ALL)
  352. @JoinTable(name = "autorizacoes_usuario", joinColumns = { @JoinColumn(name = "fk_usuario") }, inverseJoinColumns = { @JoinColumn(name = "fk_autorizacoes") })
  353. @JsonManagedReference
  354. public List<AutorizacoesUsuario> getAutorizacoes() {
  355. return this.autorizacoes;
  356. }
Add Comment
Please, Sign In to add comment