Hi everyone

Have someone figured out how to make server push work when enabling security in 
Blazeds and using custom adapters?. Authentication and Authorisation works for 
remoting and fails with messaging.

The errors is from within Blazeds code. If someone can point me to a working 
example I would really appreciate it.

I get the following error when extending service adapter and using 
default-security-contstraint in messaging-service.xml

when calling msgBroker.routeMessageToService(msg,null);

java.lang.NullPointerException at 
flex.messaging.FlexContext.isPerClientAuthentication(FlexContext.java:319)
at flex.messaging.FlexContext.getUserPrincipal(FlexContext.java:338)
at 
flex.messaging.security.LoginManager.getCurrentPrincipal(LoginManager.java:377)
at flex.messaging.security.LoginManager.checkConstraint(LoginManager.java:305)
at flex.messaging.MessageBroker.inspectOperation(MessageBroker.java:1754)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1492)

If i extend messagingadapter and adds subscribe and send-security constraints 
in messaging-config.xml

I get this error 

java.lang.NullPointerException at 
flex.messaging.FlexContext.isMessageFromPeer(FlexContext.java:297)
        at 
flex.messaging.services.messaging.adapters.MessagingSecurityConstraintManager.checkConstraint(MessagingSecurityConstraintManager.java:129)
        at 
flex.messaging.services.messaging.adapters.MessagingSecurityConstraintManager.assertSendAuthorization(MessagingSecurityConstraintManager.java:88)
        at 
flex.messaging.services.MessageService.serviceMessage(MessageService.java:273)
        at 
flex.messaging.services.MessageService.serviceMessage(MessageService.java:204)
        at 
flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
        at 
com.markedskraft.orwell.nef.services.ClientPusher$$anon$1.onMessage(PlanStatusAdapter.scala:51)
        at 
org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:229)
        at 
org.jboss.jms.client.container.ClientConsumer$ListenerRunner.run(ClientConsumer.java:1043)
        at 
org.jboss.messaging.util.OrderedExecutorFactory$ChildExecutor.run(OrderedExecutorFactory.java:120)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:637)

in messaging-config.xml:
 <destination id="Status">
        <channels>
            <!--channel ref="my-streaming-amf"/-->
            <channel ref="my-longpolling-amf"/>
            <channel ref="my-amf"/>
        </channels>
        <properties>
            <server>
                <send-security-constraint ref="user-custom"/>
                <subscribe-security-constraint ref="user-custom"/>
            </server>
        </properties>
        <adapter ref="StatusAdapter"/>
    </destination>

I have class StatusAdapter extends MessagingAdapter

which overrides invoke and in the end calls 
msgService.pushMessageToClients(newMessage, true);

Then I have a "thread" that calls

aMsg = new AsyncMessage()
aMsg.setDestination("Status");
aMsg.setMessageId(UUIDUtils.createUUID());
aMsg.setClientId(clientID)
aMsg.setBody(myData)


msgBroker = MessageBroker.getMessageBroker(null);
msgBroker.routeMessageToService(aMsg, null)

and it fails with the previously written errors

Thank you very much in advance
Steffen
 

Reply via email to