IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

mon application web (primefaces) ne fonctionne pas quand j'ajoute spring security


Sujet :

Spring Web Java

  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut mon application web (primefaces) ne fonctionne pas quand j'ajoute spring security
    Bonjour à tous,


    J'ai une petite application Web CRUD qui fonctionne bien dans mon entreprise (JDK8, JSF2.2, netbeans8.2, Maven et primefaces 6.2).

    j'affiche mes données "authorities" avec la page liste.xhtml:

    Code XHTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
          xmlns:h="http://xmlns.jcp.org/jsf/html"
          xmlns:f="http://xmlns.jcp.org/jsf/core"
          xmlns:p="http://primefaces.org/ui">
     
        <ui:composition template="/admin/menuAdmin.xhtml"    >
            <ui:define name="title">
                <h:outputText value="#{bundle.ListAuthoritiesTitle}"></h:outputText>
            </ui:define>
     
            <ui:define name="body">
                <h:form id="AuthoritiesListForm">
                    <p:panel header="#{bundle.ListAuthoritiesTitle}">
                        <p:dataTable id="datalist" value="#{authoritiesController.items}" var="item"
                                     selectionMode="single" selection="#{authoritiesController.selected}"
                                     paginator="true"
                                     rowKey="#{item.authoritiesPK}"
                                     rows="10"
                                     rowsPerPageTemplate="10,20,30,40,50"
                                     >
                            <p:ajax event="rowSelect"   update="createButton viewButton editButton deleteButton"/>
                            <p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>
     
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="#{bundle.ListAuthoritiesTitle_authoritiesPK_authority}"/>
                                </f:facet>
                                <h:outputText value="#{item.authoritiesPK.authority}"/>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="#{bundle.ListAuthoritiesTitle_users}"/>
                                </f:facet>
                                <h:outputText value="#{item.users}"/>
                            </p:column>
                            <f:facet name="footer">
                                <p:commandButton id="createButton" icon="ui-icon-plus"   value="#{bundle.Create}" actionListener="#{authoritiesController.prepareCreate}" update=":AuthoritiesCreateForm" oncomplete="PF('AuthoritiesCreateDialog').show()"/>
                                <p:commandButton id="viewButton"   icon="ui-icon-search" value="#{bundle.View}" update=":AuthoritiesViewForm" oncomplete="PF('AuthoritiesViewDialog').show()" disabled="#{empty authoritiesController.selected}"/>
                                <p:commandButton id="editButton"   icon="ui-icon-pencil" value="#{bundle.Edit}" update=":AuthoritiesEditForm" oncomplete="PF('AuthoritiesEditDialog').show()" disabled="#{empty authoritiesController.selected}"/>
                                <p:commandButton id="deleteButton" icon="ui-icon-trash"  value="#{bundle.Delete}" actionListener="#{authoritiesController.destroy}" update=":growl,datalist" disabled="#{empty authoritiesController.selected}"/>
                            </f:facet>
                        </p:dataTable>
                    </p:panel>
                </h:form>
     
                <ui:include src="Create.xhtml"/>
                <ui:include src="Edit.xhtml"/>
                <ui:include src="View.xhtml"/>
            </ui:define>
        </ui:composition>
    </html>

    j'accede à mes données avec persistence.xml:

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
      <persistence-unit name="myPersistenceUnitName" transaction-type="JTA">
        <jta-data-source>myDSConnection</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties/>
      </persistence-unit>
    </persistence>

    mon controlleur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package controler;
     
    @Named("authoritiesController")
    @SessionScoped
    public class AuthoritiesController implements Serializable {
     
        @EJB
        private facade.AuthoritiesFacade ejbFacade;
        private List<Authorities> items = null;
        private Authorities selected;
     
        public AuthoritiesController() {
        }	
    	//...
        private AuthoritiesFacade getFacade() {
                return ejbFacade;
        }
     
        public List<Authorities> getItems() {
                if (items == null) {
                    items = getFacade().findAll();
                }
                return items;            
        }
    	//...
    }
    et mes facades sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package facade;
     
    import java.util.List;
    import javax.persistence.EntityManager;
     
    public abstract class AbstractFacade<T> {
     
        private Class<T> entityClass;
     
        public AbstractFacade(Class<T> entityClass) {
            this.entityClass = entityClass;
        }
     
        protected abstract EntityManager getEntityManager();
     
        public List<T> findAll() {
                javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
                cq.select(cq.from(entityClass));
                return getEntityManager().createQuery(cq).getResultList();
        }
    	//...
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package facade;
     
    import data.Authorities;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    @Stateless
    public class AuthoritiesFacade extends AbstractFacade<Authorities> {
     
        @PersistenceContext(unitName = "myPersistenceUnitName")
        private EntityManager em;
     
        @Override
        protected EntityManager getEntityManager() {
            return em;
        }
     
        public AuthoritiesFacade() {
            super(Authorities.class);
        }  
    }
    Pour sécuriser mon application Web, j'ai intégrer spring security 5.1.4.et ajouter une page login pour authentifier les utilisateurs avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package application;
     
    import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
     
    public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
     
        public SecurityWebApplicationInitializer() {
            super(WebSecurityConfig.class);
        }  
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    package application;
     
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
     
        @Autowired
        PasswordEncoder passwordEncoder;    
     
        @Autowired
        private DataSource dataSource;
     
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
                .antMatchers("/javax.faces.resources/**").permitAll()                  
                .antMatchers("/admin").hasRole("ADMIN").anyRequest().authenticated()          
                .and()
                .formLogin().loginPage("/login.xhtml").successForwardUrl("/index.xhtml").permitAll()
                .and()
                .logout().logoutSuccessUrl("/login.xhtml").permitAll();
            http.csrf().disable();
        }
     
        @Autowired
        public void configureGlobal(AuthenticationManagerBuilder auth)  {
            auth
                .jdbcAuthentication().dataSource(dataSource);
        }
     
    	@Bean
    	public DataSource getDataSource() {
    		DriverManagerDataSource dataSource = new DriverManagerDataSource();
    		dataSource.setDriverClassName("oracle.jdbc.OracleDriver");
    		dataSource.setUrl("jdbc:oracle:thin:@myURL");
    		dataSource.setUsername("myUSERNAME");
    		dataSource.setPassword("myPASSWORD");
    		return dataSource;
    	}   
     
        @Bean
        public PasswordEncoder passwordEncoder() {
            return new BCryptPasswordEncoder();
        }  
    }
    Et a partir de la, je ne peux plus afficher mes données "authorities", ajax et FacesContext ne fonctionnent pas.

    J'ai essayé certaines solutions proposées sur le web, mais ca ne fonctionne pas. Il me semble que spring security me bloque EntityManager, les ajax et FacesContext.

    j'obtiens le message d'erreur suivant :
    Error 500--Internal Server Error

    java.lang.NullPointerException
    at controler.AuthoritiesController.getItems(AuthoritiesController.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:362)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:139)
    at com.sun.el.parser.AstValue.getValue(AstValue.java:203)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
    at javax.faces.component.UIData.getValue(UIData.java:732)
    at org.primefaces.component.api.UIData.getDataModel(UIData.java:768)
    at javax.faces.component.UIData.getRowCount(UIData.java:356)
    at org.primefaces.component.api.UIData.calculateFirst(UIData.java:222)
    at org.primefaces.component.datatable.DataTableRenderer.preRender(DataTableRenderer.java:203)
    at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:92)
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
    at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:91)
    at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:73)
    at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:210)
    at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:124)
    at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:58)
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
    at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:86)
    at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:73)
    at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49)
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:651)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:141)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:124)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3683)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)
    at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)

    je suis nouveau en java et spring security (de l'indulgence de votre part)

    SVP de l'aide !

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est un peu contradictoire de faire une application JEE et de vouloir intégrer Spring.

    Pour la sécurité, tu peux t'appuyer sur JAAS dans le monde EE, il y a une raison particulière de vouloir Spring security ?
    Tu utilises quel serveur d'applications ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut
    Merci bcp pour votre réponse

    j'utilise un serveur Weblogic et DB Oracle, et mes pages .xhtml (vues) se sont pas sécurisées

    je me suis inspiré de la doc sur le web comme:


    https://codenotfound.com/jsf-primefa...y-example.html

    https://www.concretepage.com/spring-...tation-example

    http://www.swview.org/blog/using-spr...eb-application

    Donc, j'ai suivi des démarches de documentation trouvée

    Spring security répond à ma position dans le service de l'entreprise et mon application

    Dans mon application, j'ai des parties réservées uniquement pour Admin, User ou Guest

    Merci encore

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je ne connais absolument pas Weblogic, je ne pourrai pas t'aider à paramétrer une sécurité JAAS.
    A priori, de ce que j'ai trouvé sur le net, ça peut se faire via la console d'administration du serveur...

    Dans le principe, JAAS teste les autorisations et rattache des rôles à un utilisateur.
    Ensuite, dans l'application, on récupère l'utilisateur en cours via request.getUserPrincipal() et/ou on peut tester son appartenance à un rôle via request.isUserInRole(String)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut
    Merci pour votre réponse

    Au fait, pour accéder à la DB et au serveur c'est avec un seul utilisateur global.

    Mais, à l’intérieur de l'application, je gérè les menus suivant les utilisateurs, tables "user" et "authorities" (admin, user ou guest) et les droits d’accès au Vues.

    Merci bien de votre solution, mais ne répond pas à ma stratégie d’implémentation.

    a bientôt

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Oui, bien sûr, on n'utilise qu'un seul utilisateur pour les accès DB dans une application web (enfin, en général).
    Ça n'a rien à voir avec l'authentification de plusieurs utilisateurs de l'application.

    Au démarrage d'une session ou quand on arrive sur une ressource sécurisée, JAAS prend la main pour demande une authentification.
    Là on saisit son profil et son mot de passe et si c'est bon, on accède à la ressource.
    Que JAAS soit paramétré pour tester via une base de données est une autre chose, on pourrait très bien authentifier par un LDAP, des fichiers de propriétés ou tout autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut
    Merci bien

    je vais regarder si ce n'est pas trop compliquer et pas trop de modifs sur l'appli déjà existante

    a bientôt


  8. #8
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut
    après des tests, j'ai trouvé que mon: "ejbFacade" dans la méthode getFacade était à NULL

    c'est ca qui me pose problème soit :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Named("authoritiesController")
    @SessionScoped
    public class AuthoritiesController implements Serializable {
     
        @EJB
        private facade.AuthoritiesFacade ejbFacade;
        private List<Authorities> items = null;
        private Authorities selected;

    Pour le moment, je suis dans l'expectative et sans solution !

Discussions similaires

  1. Exécution asynchrone ne fonctionne pas avec Spring Async
    Par bernidupont dans le forum Spring
    Réponses: 1
    Dernier message: 08/07/2018, 13h11
  2. [MVC] Propriété readonly ne fonctionne pas avec Spring
    Par pontus21 dans le forum Spring Web
    Réponses: 0
    Dernier message: 22/04/2009, 16h36
  3. evenement onclick ne fonctionne pas avec explorer??
    Par nath-0-0 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2006, 12h13
  4. Réponses: 7
    Dernier message: 24/01/2006, 11h03
  5. window.resizeTo ne fonctionne pas avec firefox?
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo