Java

Megfelelő login- és játékmechanika

Fórumok

Sziasztok!

Egy egyszerű kis kliens-szerver alapú játékot szeretnék létrehozni, ahol a játékosoknak szükséges a regisztráció és a belépés. Itt egy olyan egyszerű problémába ütköztem, hogy az szép és jó, hogy a felh/jelszó utazik az internet csodálatos világában, de azért szeretném azt, hogy valamilyen szinten védett legyen.

Gondolkoztam RSA titkosításon, de ott felmerült bennem, hogy Middle-in-attack támadással ez jócskán átjátszható. Igazából ettől tovább még nem is jutottam. :) Így ötleteket szeretnék, hogy hogyan is lehetne ezt szépen megvalósítani.

Továbbá a login mechanika a következő:

  1. A kliens elküldi a felhasználónév/jelszó párost a login szervernek. A felh/jelszó kódolva RSA-val public kulccsal.
  2. A login szerver check-ol (Itt a privát key.), ha jó, visszaküld egy IP-t pluszba esetleg valamilyen checksum-ot vele.
  3. Rossz felh/jelszó páros esetén visszaküld egy helytelen bejelentkezés üzenetet. (kicsit overheadelve hogy feldolgozható legyen azért)
  4. A kliens csatlakozik a game szerverhez (amit megkapott IP címet) a checksummal, hogy azért itt is legyen egy kis ellenőrzés, és mindenki boldog.

Esetleg ha ez a login mechanika is sérülékeny, akkor várom az építő jellegű ötleteket.

A játék mechanika esetén pedig az lenne itt a jó kérdésem végülis, hogy mit érdemes és hogyan utaztatni a game szerver és a kliens között? ( Gondolok itt környező világrészlet változásokra elsősorban ).

A JMonkeyEngine-t használom, esetleg ha ez egy kezdetleges támpontot megad. Sajnos viszont ebben a Networking-ről nem sok szó esik, nagyon alap :\.

A játékról semmit se szeretnék elárulni, ha nem nagy gond, saját szórakozásom és tanulásom javára írogatom. :)

Válaszotok előre is köszönöm!

[MEGOLDVA] Manifest.mf build verzió probléma

Fórumok

Hi,

Van egy SWING-es projektem. Összeraktam egy build.xml-t, hogy a manifest-be bekerüljün az adott jar verziószáma. Így néz ki az idevágó rész:

http://pastebin.com/D7A77hFe

A manifest.mf el is készül szépen. A problémám az, hogy az alábbi megoldással nem tudom kiolvasni a verziószámot meg mást sem (az összes attrib null).


                    Updater updater = new Updater();
                    Package p=updater.getClass().getPackage();
                    String name = p.getName();
                    String version = p.getSpecificationVersion();

Kifolyik a szemem lassan, de nem találom a megoldást :(.
Örülnék, ha valaki tudna segíteni. Köszönöm!

[megoldva] Thymeleaf nem veszi észre a template változást

Fórumok

Sziasztok,

Fejlesztek egy Springes alkalmazást, ami Thymeleaf template enginet használ, és sajnos csak az alkalmazás újraindításával veszi észre ha megváltozik a template :(

Így fut az alkalmazás (gradle run-nal futtatom):
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}

Ez van az application.properties:
spring.thymeleaf.cache = false

És a ThymeleafAutoConfiguration mintájára van egy saját ThymeleafAutoConfiguration osztályom, amibe:

TemplateResolver resolver = new TemplateResolver();
Boolean cache = this.environment.getProperty("cache", Boolean.class, true);
resolver.setCacheable(cache);
if (!cache) { resolver.setCacheTTLMs(0L); }

SpringTemplateEngine engine = new SpringTemplateEngine();
if (!environment.getProperty("cache", Boolean.class, true)) { engine.setCacheManager(null); }

ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setCache(this.environment.getProperty("cache", Boolean.class, true));

Debugolva a kódot mivel a cache false, a ThymeleafAutoConfiguration mindent beállít rendben, mégsem veszi észre, hogy ha megváltozik egy template.

Az ötleteket előre is köszönöm.

Weblogic cache

Fórumok

Sziasztok,
Oracle Weblogic mágust keresek:
-Autodeploy-al kirakott alkalmazás
-staging kikapcsolva
ennek ellenére deploy után(a build script letörli a régi war-t és bemásolja az újonnan összeállítottat)
az alkalmazás nem frissül..
*kicsit* lassú a leállít,könyvtárakat töröl,újraindít egymás utánja..

M$ "megoldás"-t (újratelepítést) szeretném mellőzni..
Nincs ötletetek rá, hogy mit lehetne még tenni, hogy deploy után frissüljenek a "beragadt" részek?

JEE projekt specifikacio

Fórumok

ASAFP szuksegem lenne egy JEE projekt specifikaciora, abbol a celbol, hogy megnezzem, er-e valamit annak a projektnek a speckoja, amit el akarok vallalni. Sose volt meg ilyen projektunk, most viszont bekopogott vele valaki, akit nem akarok elhajtani.

Nincs semmilyen megkotesem, nem baj, ha bonyi, az se erdekel, hogy nem valosult meg, mondjuk a megvalosult jobb lenne, akkor tudnek meg kerdezni.
Azt is vagom, hogy ez nem pont az a forum, de perpill nincs mas, ugyhogy itt kell megoldast keresni.

maven projekt tomcat7 -

Fórumok

Tisztelt fórumozók!

Kaptam egy maven projektet (pom.xml-al).
Elszeretném indítani tomcat7 alatt,
maven package-t lefordul a war fájl. Bemásolom a webapps-ba és deployolom, megcsinálom a tomcat,de ezután a startnál nem indul el.

Ez a hibaüzenet fogad:
ERROR Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to load bean class: hu.valami.x; nested exception is java.io.FileNotFoundException: class path resource [hu/valami/mas.class] cannot be opened because it does not exist
..
Caused by: java.io.FileNotFoundException: class path resource [hu/valami/mas.class] cannot be opened because it does not exist

a war fájlból kicsomagolódik a WEB-INF/lib-be és ott van a csatolt jar fájlok (arra hivatkozik).
(a hu.valami.x az egy jar fájlba van,amit kaptunk lefordítva).
Mit nézzek?
Köszönöm

[megoldva] RXTX olvasott válasz rövid

Fórumok

Sziasztok!

Van egy kódom, ami egy USB relépanelre küld parancsokat és a válaszokat kiolvassa.

Szintakszis:

parancs:

command\r

válasz:

command\r
reply\r
>

tehát visszaküldi a parancsot magát, új sorban a választ, megint új sorban egy > jelet.

A dev PC-men tökéletes, illetve még két virtuális gépen kipróbálva szintén jól működött.

Példa a helyes működésre:

Küldés:

gpio read 0\r

Helyes válasz:

gpio read 0\r
1\r
>

Ami a target gépen jön vissza:

gpio read 0

Magyarán a stream véget ér, és csak az elküldött válasz visszatolásáig jut el.

Maga a kód:

public static String command(String command) throws Exception {
byte[] buffer = new byte[1024];
int len = 0;
out.flush();
try{
out.write(command.getBytes());
out.write('\r');
out.flush();
int data;
Thread.sleep(100);
while (in.available() > 0)
{
data = in.read();
if ( (char) data == '>') {
break;
}
buffer[len++] = (byte) data;
}

} catch (IOException ex){
}
return new String(buffer);
}

Néhány hasznos param:

dev gép:


kernel: 3.11.0-12 generic
java version: 1.7.0_51 OpenJDK IcedTea 2.4.4, 7u51-2.4.4-0ubuntu0.13.10.1

cél gép:

kernel 3.7.1-030701-generic
java version: 1.7.0_55 OpenJDK IcedTea 2.4.7, 7u55-2.4.7-1ubuntu1~0.12.04.2

Mindkét esetben a használt jar: RXTX-2.2-pre2

Nekem valami rendszerszintű változtatásnak tűnik, amit az RXTX natív kódrésze nem jól kezel. Nem vagyok egy túl nagy Java manó, de ez a kód azt csinálja, amit kell (direkt nem nonblocking vagy event vezérelt), viszont sajnos pont a cél rendszeren nem jó.

Bárki bármi ötlet mond, már segített!

GUI és backend együttműködésének megoldása hogyan?

Fórumok

Sziasztok!

Szeretnék segítséget kérni, iskolai projectfeladatban veszek részt, egy tárgyiesztköz nyilvántartó programot készítünk. Hárman vagyunk, a GUI, az adatbázis és a backend a feladat, az utóbbit csinálom én. Sajnos nem vagyok még jó a programozásban.
A problémám a következő lenne: A GUI-tól kapott adatokat bele szertnénk tenni egy public objektumba, amit a backend kiolvasna onna, és továbbtaná a MySQL-nek. Valami ilyesmire gondoltam:

/*
public class kozbensoTarolo {
private final String tipus,
alTipus,
megnevezes,
megjegyzes;
private final int leltariszam;

public kozbensoTarolo (String tipus, String alTipus, String megnevezes, String megjegyzes, int leltariszam){
this.tipus = tipus;
this.alTipus = alTipus;
this.megnevezes = megnevezes;
this.megjegyzes = megjegyzes;
this.leltariszam = leltariszam;
}

}
*/
Persye lehet, hogy rossz módon kezdtem, de nem szeretném elszúrni. Kérlek adjatok tanácsot, hogyan lehetne ezt jól megcsinálni.
Előre is köszönöm a segítséget.

SonarQube in Action előadás

Fórumok

Ugyan a Java szekcióba írom, de a Sonar kezdi kinőni magát, egyre több programozási nyelvnél támogatja a kódminőség ellenőrzést, de még mindig a Java az erőssége.

A következő javaforum.hu meetup-ra lehet még (bőven) jelentkezni, Patroklos Papapetrou fogja bemutatni a SonarQube lehetőségeit (angol nyelven):
http://www.meetup.com/javaforum-hu/events/164471662/

A helyszín közben fixálódott: Kirakat, Kazinczy utca 3., Budapest

A linket nyugodtan adjátok tovább kollégáknak, ismerősöknek, akiket érdekelhet.