Commit 4b574c9a by Tuomas Riihimäki

RFID jutukkeita

1 parent fce4b5f6
......@@ -36,6 +36,7 @@
package fi.insomnia.bortal;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.security.auth.login.LoginException;
......@@ -44,7 +45,6 @@ import com.sun.appserv.security.AppservPasswordLoginModule;
import com.sun.enterprise.security.auth.realm.InvalidOperationException;
import com.sun.enterprise.security.auth.realm.NoSuchUserException;
/**
*
* @author nithyasubramanian SampleLoginModule - extends
......@@ -69,8 +69,8 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
protected void authenticateUser() throws LoginException {
log((new StringBuilder()).append("CustomRealm Auth Info:_username:")
.append(_username)
//.append(";_password:").append(_passwd)
.append(";_currentrealm:").append(_currentRealm).toString());
// .append(";_password:").append(_passwd)
.append(";_currentrealm:").append(_currentRealm).toString());
// Check if the given realm is SampleRealm
if (!(_currentRealm instanceof BortalRealm)) {
......@@ -97,7 +97,6 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
// Get group names for the authenticated user from the Realm class
Enumeration<String> enumeration = null;
String authenticatedGroups[] = new String[2];
try {
enumeration = samplerealm.getGroupNames(_username);
} catch (InvalidOperationException invalidoperationexception) {
......@@ -111,11 +110,15 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
" while calling getGroupNames() on the SampleRealm ")
.append(nosuchuserexception).toString());
}
ArrayList<String> authenticatedGroups = new ArrayList<String>();
for (int i = 0; enumeration != null && enumeration.hasMoreElements(); i++)
authenticatedGroups[i] = (String) enumeration.nextElement();
authenticatedGroups.add(enumeration.nextElement());
// Call commitUserAuthentication with the groupNames the user belongs to
commitUserAuthentication(authenticatedGroups);
commitUserAuthentication(authenticatedGroups.toArray(new String[0]));
}
private void log(String s) {
......
......@@ -2,12 +2,7 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)">
<attributes>
<attribute name="owner.project.facets" value="jst.utility"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
......
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
......
Manifest-Version: 1.0
Class-Path: lib/LanBortalDatabase.jar
lib/LanBortalDatabase.jar
lib/PDFjet.jar
lib/PDFjet.jar
lib/LanBortalAuthModuleClient.jar
package fi.insomnia.bortal.beans;
import java.util.Calendar;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import fi.insomnia.bortal.facade.PrintedCardFacade;
import fi.insomnia.bortal.facade.ReaderEventFacade;
import fi.insomnia.bortal.facade.ReaderFacade;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.Reader;
import fi.insomnia.bortal.model.ReaderEvent;
/**
* Session Bean implementation class ReaderBean
......@@ -16,16 +23,22 @@ public class ReaderBean implements ReaderBeanLocal {
private ReaderFacade readerfacade;
@EJB
private EventBeanLocal eventbean;
@EJB
private PrintedCardFacade cardfacade;
@EJB
private ReaderEventFacade readerEventFacade;
@Override
public boolean checkTag(String ident, String tag, String hash) {
Reader reader = readerfacade.findByIdent(eventbean.getCurrentEvent(), ident);
boolean ret = false;
if(reader != null)
{
public ReaderEvent checkTag(String ident, String tag, String hash) {
LanEvent ev = eventbean.getCurrentEvent();
Reader reader = readerfacade.findByIdent(ev, ident);
PrintedCard card = cardfacade.findByRfid(ev, tag);
ReaderEvent ret = null;
if (reader != null && card != null) {
ret = new ReaderEvent(ev, Calendar.getInstance(), card, reader);
readerEventFacade.create(ret);
}
return ret;
}
}
......@@ -43,4 +43,11 @@ public class PrintedCardFacade extends EventChildGenericFacade<PrintedCard> {
// return q.getResultList();
return retlist;
}
public PrintedCard findByRfid(LanEvent event, String uid) {
TypedQuery<PrintedCard> q = em.createQuery("select pc from PrintedCard pc where pc.rfidUid = :uid and pc.id.eventId = :eventid ", PrintedCard.class);
q.setParameter("uid", uid);
q.setParameter("eventid", event.getId());
return getSingleNullableResult(q);
}
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.ReaderEvent;
@Local
public interface ReaderBeanLocal {
boolean checkTag(String reader, String tag, String hash);
ReaderEvent checkTag(String reader, String tag, String hash);
}
......@@ -20,12 +20,15 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
/**
*
*/
@Entity
@Table(name = "printed_cards")
@Table(name = "printed_cards", uniqueConstraints = {
@UniqueConstraint(columnNames = { "rfid_uid", "event_id" }),
@UniqueConstraint(columnNames = { "barcode", "event_id" }) })
@NamedQueries({
@NamedQuery(name = "PrintedCard.findAll", query = "SELECT p FROM PrintedCard p"),
......@@ -51,7 +54,7 @@ public class PrintedCard extends GenericEventChild {
private boolean enabled = true;
@Column(name = "rfid_uid")
private String rfidUid ;
private String rfidUid;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "printedCard")
private List<ReaderEvent> readerEvents;
......@@ -144,13 +147,11 @@ public class PrintedCard extends GenericEventChild {
this.user = usersId;
}
@Override
public String toString() {
return "fi.insomnia.bortal.model.PrintedCard[id=" + getId() + "]";
}
public void setTemplate(CardTemplate template) {
this.template = template;
}
......
......@@ -11,8 +11,8 @@
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="reader" value="#{rfidView.reader}" />
<f:viewParam name="tag" value="#{rfdiView.tag}" />
<f:viewParam name="hash" value="#{rfdiView.hash}" />
<f:viewParam name="tag" value="#{rfidView.tag}" />
<f:viewParam name="hash" value="#{rfidView.hash}" />
</f:metadata>
</ui:define>
<ui:define name="content">
......
......@@ -4,7 +4,6 @@ import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import javax.faces.model.ListDataModel;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventMapBeanLocal;
......
package fi.insomnia.bortal.view;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
......@@ -9,7 +8,6 @@ import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.jboss.weld.bean.builtin.EventBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -4,6 +4,18 @@
*/
package fi.insomnia.bortal.view;
import java.math.BigDecimal;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.PlaceMapBeanLocal;
......@@ -11,25 +23,11 @@ import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.User;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author tuukka
......
......@@ -75,8 +75,11 @@ public class PasswordResetView extends GenericView {
logger.debug("billpath {}", path);
userbean.initPasswordReset(userObj, hashStr, path.toString());
return "resetmailSent";
}
return "resetmailSent";
mailuser = null;
this.addFaceMessage("passwordreset.usernotfound");
return null;
}
public Integer getId() {
......
......@@ -5,27 +5,22 @@
package fi.insomnia.bortal.view;
import java.math.BigDecimal;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.convert.Converter;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.DiscountBeanLocal;
import fi.insomnia.bortal.beans.ProductBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.BillLine;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Product;
......
......@@ -2,11 +2,11 @@ package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.ReaderBeanLocal;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.ReaderEvent;
@ManagedBean(name = "rfidView")
@RequestScoped
......@@ -17,9 +17,14 @@ public class RfidView extends GenericView {
@EJB
private ReaderBeanLocal readerbean;
@ManagedProperty(value = "#{rfidContainer}")
private RfidContainer container;
public String readTag() {
String ret = "Error";
if (readerbean.checkTag(reader, tag, hash)) {
ReaderEvent revent = readerbean.checkTag(reader, tag, hash);
getContainer().foundTag(reader, tag, revent);
if (revent != null) {
ret = "Ok";
}
return ret;
......@@ -49,4 +54,12 @@ public class RfidView extends GenericView {
this.hash = hash;
}
public void setContainer(RfidContainer container) {
this.container = container;
}
public RfidContainer getContainer() {
return container;
}
}
......@@ -4,13 +4,10 @@
*/
package fi.insomnia.bortal.view;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
......@@ -20,11 +17,9 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......
......@@ -258,6 +258,7 @@ user.accountEvents=Tilitapahtumat
bill.billMarkedPaidMail.subject=[INSOMNIA] Lasku merkitty maksetuksi
bill.billMarkedPaidMail.message=Laskusi numero {0} on merkitty maksetuksi. Voit nyt siirty lippukauppaan varamaamaan haluamasi paikat. \nTervetuloa tapahtumaan!\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi
passwordreset.usernotfound=Annettua kyttjtunnusta ei lydy. Huomioi ett isot ja pienet kirjaimet ovat merkitsevi.
passwordreset.mailSubject=[INSOMNIA] Salasanan vaihtaminen
passwordreset.mailBody=Voit vaihtaa salasanasi osoitteessa {0}\n\nJos et ole pyytnyt unohtuneen salasanan vaihtamista, ei thn viestiin tarvitse reagoida.\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi
passwordReset.hashNotFound=Salasanan vaihto on vanhentunut. Jos haluat vaihtaa salasanan lhet vaihtopyynt uudelleen.
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!