/*
**
** Copyright 2013, Jules White
**
**
*/
package org.magnum.soda.server.wamp;
public class AuthenticatedSubscriptions extends Subscriptions {
private SubscriptionAuthenticator authenticator_;
public AuthenticatedSubscriptions(SubscriptionAuthenticator authenticator) {
super();
authenticator_ = authenticator;
}
@Override
public void subscribe(ClientId clientId, String topicUri) {
if (canSubscribe(clientId, topicUri)) {
super.subscribe(clientId, topicUri);
}
}
@Override
public void unsubscribe(ClientId clientId, String topicUri) {
if (canSubscribe(clientId, topicUri)) {
super.unsubscribe(clientId, topicUri);
}
}
public boolean canSubscribe(ClientId clientId, String topicUri) {
return authenticator_ == null
|| authenticator_.canSubscribeTo(clientId, topicUri);
}
}