Hi,
clientObj.referrer issue :
This is how you secure your application against
leeches :
public class Application extends ApplicationAdapter
implements IPendingServiceCallback,
IStreamAwareScopeHandler {
private static final Log log =
LogFactory.getLog(Application.class);
// this is where you keep your allowed
domains(clients/referrers)
public Hashtable allowedDomains = new Hashtable();
public void initApplication(){
// if you test the swf directly :
allowedDomains.put("file:///C|/stuf/zbuf/smuf/foo.swf",
new Boolean(true));
// if you test from localhost
allowedDomains.put("http://localhost/foo.swf", new
Boolean(true));
// ... other swfs
}
@Override
public boolean appConnect(IConnection conn, Object[]
params){
log.info("Application connect");
IClient client = conn.getClient();
String swfUrl =
(String)conn.getConnectParams().get("swfUrl");
Boolean isAllowed =
(Boolean)allowedDomains.get(swfUrl);
if(isAllowed != null){
if(!isAllowed){
log.info("will reject client " + swfUrl);
rejectClient();
return false;
}else{
log.info("will accept client" + swfUrl);
}
}
else
{
log.info("Reject client " + swfUrl);
rejectClient();
return false;
}
}catch(Exception ex){
log.info(ex.getMessage());
return false;
}
return true;
}
}
How it works :
String swfUrl =
(String)conn.getConnectParams().get("swfUrl");
gets you the refferer
appConnect must first call rejectClient and then
return false on a faulty client.
But it has to do them together, dont try to call
client.disconnect(), as natural is it looks, that is
not the way to do it.
--- joseph wamicha <[EMAIL PROTECTED]> wrote:
> >1: how would i inside the FannarchyJob access data
> inside the main app ?
> Declare classes with constructors inside your
> WEB-INF directory. Then call
> the classes and it's methods as you would in a
> normal JAVA application. I
> haven't tried this yet but I'm suspecting it will
> work. Also, to access
> resources created from within the main application,
> extend
> ApplicationAdapter within FanarchyJob.
>
> >2: how would i send a message (
> sc.invoke("the_method", new
> Object[]{"message"}); ) to all user's conected (
> from inside the
> FannarchyJob evry 30 sec) and/or to a special user
> ?( like user's in a
> special room )
> Joachim's migration guide shows you how to create a
> 30sec job schedule.
> Though I haven't tried it, probably extend
> ApplicationAdapter in
> FanarchyJob, then get all connected clients and send
> them their message.
>
> >3: is there a equal to clientObj.referrer in red5 ?
> ( so i can make sure
> the
> swf is used from my site )?
> mmhh, I don't know. That's a good question!!! The
> RTMP message must come
> with this... I really wonder if red5 can allow you
> to poll such data!
>
> >4: How would i used the output off
> app.getClients(); and
> theClient.getConnections(); i am unfalilat with
> Set<IClient> and
> Set<IConnection> dont understand how to use ?
>
> Iterate through the returned Set:
>
> ie probably try this (again I haven't tested):
> Iterator<String> it =
> thisScope.getClients().iterator();
> while(it.hasnext())
> {
> //you can now get your clients using normal
> iterator methods...
> }
>
> Do the same for getConnections.
>
> --
> C is forever.
> > _______________________________________________
> Red5 mailing list
> [email protected]
> http://osflash.org/mailman/listinfo/red5_osflash.org
>
____________________________________________________________________________________
Need a quick answer? Get one in minutes from people who know.
Ask your question on www.Answers.yahoo.com
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org