UPS push to IOS removes the badge
by Kelvin Lunsford
If UPS is given a push command with no "badge" value the IOS badge icon is being removed when the notification is received. Expected behavior is that the badge icon would be unchanged if no badge value is set.
When USP receives a push command with no "badge" value it is sending APNS a "badge" value of -1.
The Apple push payload spec says the badge icon is removed if the "badge" value is 0, and the icon is unchanged if there is no "badge" value. The spec does not say what happens if the "badge" value is less than zero.
Tested devices are removing the badge icon when -1 is set.
Please change UPS so no "badge" value is sent to APNS when the UPS command has no "badge" value.
For example you could change the sendPushMessage function of APNsPushNotificationSender.java to:
PayloadBuilder builder = APNS.newPayload()
// adding recognized key values
.alertBody(message.getAlert())
//.badge(message.getBadge()) // do not set badge here
.sound(message.getSound())
.alertTitle(apns.getTitle())
.alertAction(apns.getAction())
.urlArgs(apns.getUrlArgs())
.category(apns.getActionCategory())
.localizedTitleKey(apns.getLocalizedTitleKey());
if (message.getBadge() >= 0)
builder.badge(message.getBadge()); // only set badge if needed
- Kelvin
9 years, 3 months
Updated Node Sender released
by Luke Holmquist
Now that the 1.1.0.Final release is about to be released of the UnifiedPush
Server, i've released the 0.8.0 version of the Node Sender.
This includes the new message format that the UPS needs.
you can get it in all the normal ways
9 years, 3 months
Aerogear Unified Push Server setup not working
by Fabio Turizo
Greetings. I've followed all instrucciones detailed in the AeroGear UPS
Installation Guide but the server isn't working.
My setup is done in an AWS instance running with RHEL 7 installing Aerogear
UPS v1.0.3 with a PostgreSQL 9.4 database (via AWS RDS) and using WildFly
8.2.1 Final with Oracle JDK 8
When i deploy the WARs (agpush and auth) everything is deployed fine.
Trying to get in the admin ui gets me an Internal error. Checking the logs:
*2015-08-05 10:11:08,832 ERROR [io.undertow.request] (default task-1)
UT005023: Exception handling request to /ag-push/index.html:
java.lang.RuntimeException: Can't resolve relative url from adapter config.*
* at
org.keycloak.adapters.AdapterDeploymentContext.getBaseBuilder(AdapterDeploymentContext.java:289)
[keycloak-adapter-core-1.0.5.Final.jar:]*
* at
org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:53)
[keycloak-adapter-core-1.0.5.Final.jar:]*
* at
org.keycloak.adapters.undertow.ServletKeycloakAuthMech.authenticate(ServletKeycloakAuthMech.java:54)
[keycloak-undertow-adapter-1.0.5.Final.jar:]*
* at
io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:283)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:300)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.impl.SecurityContextImpl$AuthAttempter.access$100(SecurityContextImpl.java:270)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.impl.SecurityContextImpl.attemptAuthentication(SecurityContextImpl.java:133)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.impl.SecurityContextImpl.authTransition(SecurityContextImpl.java:108)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.impl.SecurityContextImpl.authenticate(SecurityContextImpl.java:101)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:55)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)*
* at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
[keycloak-undertow-adapter-1.0.5.Final.jar:]*
* at
org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
[keycloak-undertow-adapter-1.0.5.Final.jar:]*
* at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]*
* at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[rt.jar:1.8.0_51]*
* at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[rt.jar:1.8.0_51]*
* at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_51]*
Is there a configuration missing in the setup that causes this error? Any
help is appreciated.
9 years, 3 months
windows 10
by Erik Jan de Wit
Hi,
After some tests we've released windows 10 support for
aerogear-windows-push and aerogear-windows-oauth2 both have been published
on nuget. With oauth2 that used to be only wnidows phone the upgrade to
windows 10 make it possible to use it on tablet and desktop, just like
push.
Hope you like it
--
Cheers,
Erik Jan
9 years, 3 months